jsx-eslint/eslint-plugin-react

no-unstable-nested-components does not detect components starting with underscore

Open

#4002 opened on Apr 28, 2026

View on GitHub
 (1 comment) (0 reactions) (0 assignees)JavaScript (8,630 stars) (2,797 forks)batch import
bughelp wanted

Description

A pattern we use commonly in our codebase (pre-dates me, and we're too far along the road now to change) is to prefix some components with an underscore e.g. when forwarding refs, or to signal a component shouldn't be exported etc.

Components with this naming convention do not get detected as parent components, and thus the unstable nested components are not flagged

function _Parent() {
  function NotFlagged() {
    return <b>oh no</b>
  }

  return <NotFlagged />
}

Given there have been other issues raised relating, and carve outs added for, this naming convention:

I think this constitutes a bug/oversight in this rule. Happy to make a PR, if there is agreement

Contributor guide