在React v16.2.0中,有一个新的接口调用React.Children
。
我很好奇React.Children
和直接使用children
有什么不同。
例如,如果我想操作子内容,我可以用这两种方法来操作。example
const Child = () => (
<div>child</div>
)
class App extends React.Component {
render() {
const template1 = React.Children.map(this.props.children, (child) => {
return React.cloneElement(child);
});
const template2 = this.props.children.map((child) => {
return React.cloneElement(child);
});
return [template1, template2];
}
}
结果是一样的。
有谁知道有什么不同吗?
或者react团队发布此API的目的是什么。
谢谢。
发布于 2019-06-10 19:07:48
请看一下这个例子,看看不同之处
将此内容粘贴到控制台浏览器:
var children = null
chidren.map(i => {return i}) // => VM370:1 Uncaught TypeError: Cannot read property 'map' of null
React.Children.map(children, i => {return i;}) // return null
下面是结果:result
因此,当子项为null或未定义时,React.Children.map将处理这种情况
https://stackoverflow.com/questions/49291442
复制相似问题