在React组件中向this.props.children添加自定义道具

时间:2017-12-24 06:57:27

标签: javascript reactjs

我有接受孩子的组件。让我们说吧;

<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}/>)}

1 个答案:

答案 0 :(得分:8)

您可以使用React.Children.map然后React.cloneElement在添加新道具后返回孩子

    {React.Children.map(children, child => {
                return React.cloneElement(child, {
                    ...newProps
                });
            })}