为什么不应该将儿童作为道具传递?

jrh*_*cks 5 reactjs eslint

根据 ESLINT 规则no-children-prop

使用 JSX 时,子项应该嵌套在开始和结束标记之间。当不使用 JSX 时,子元素应该作为附加参数传递给 React.createElement

这只是一种风格建议,还是会产生真正的损害?

fin*_*req 8

这似乎更像是一种风格建议,也可以防止您射中自己的脚。

如果你有一个组件:

<Component children="foo">bar</Component>
Run Code Online (Sandbox Code Playgroud)

并在组件中做

return (
  <div>
    {this.props.children}
  </div>
)
Run Code Online (Sandbox Code Playgroud)

你最终会得到barthis.props.children而不是,foo但就这破坏任何反应或造成“损害”而言,我没有发现任何证据,这里有一个冗长的讨论https://github.com/airbnb/javascript/issues/ 1089#issuecomment-250640742 说明相同。