Skip to content

react/no-children-prop Correctness ​

✅ This rule is turned on by default.

What it does ​

Checks that children are not passed using a prop.

Why is this bad?

Children should always be actual children, not passed in as a prop. When using JSX, the children should be nested between the opening and closing tags. When not using JSX, the children should be passed as additional arguments to React.createElement.

Example ​

Examples of incorrect code for this rule:

jsx
<div children='Children' />

<MyComponent children={<AnotherComponent />} />
<MyComponent children={['Child 1', 'Child 2']} />
React.createElement("div", { children: 'Children' })

Examples of correct code for this rule:

jsx
<div>Children</div>
<MyComponent>Children</MyComponent>

<MyComponent>
  <span>Child 1</span>
  <span>Child 2</span>
</MyComponent>

React.createElement("div", {}, 'Children')
React.createElement("div", 'Child 1', 'Child 2')

How to use ​

To enable this rule in the CLI or using the config file, you can use:

bash
oxlint --deny react/no-children-prop
json
{
  "rules": {
    "react/no-children-prop": "error"
  }
}

References ​

Released under the MIT License.