?> 英:Why would you use React.Children.map(props.children, () => ) instead of props.children.map(() => )
答:
props.children
并不一定是数组类型,譬如下面这个元素:
<Parent>
<h1>Welcome.</h1>
</Parent>
如果我们使用
props.children.map
函数来遍历时会受到异常提示,因为在这种情况下props.children
是对象(object
)而不是数组(array
)。
React
当且仅当超过一个子元素的情况下会将props.children
设置为数组,就像下面这个代码片:
<Parent>
<h1>Welcome.</h1>
<h2>props.children will now be an array</h2>
</Parent>
这也就是我们优先选择使用
React.Children.map
函数的原因,其已经将props.children
不同类型的情况考虑在内了。
参考资料: