我有接受孩子的组件。让我们说吧;
<Toolbar><div>C1</div><div>C2</div></Toolbar>
当我使用{children}
内的Toolbar
打印儿童时,我可以看到它们。但是,我需要添加/ manupilate一些道具,所以我想迭代它们(像其他arrays.map)。但是,当我尝试使用children.map
时,我会收到以下错误。
Warning: React.createElement: type is invalid -- expected a string (for built-in
components) or a class/function (for composite components) but got: object.
我怎么能做到这一点?
谢谢!
编辑;我的意思是:
{children.map((Child,index)=> <Child {...newProps}/>)}
答案 0 :(得分:8)
您可以使用React.Children.map
然后React.cloneElement
在添加新道具后返回孩子
{React.Children.map(children, child => {
return React.cloneElement(child, {
...newProps
});
})}