2017-12-24 15 views
2

子供を受け入れるコンポーネントがあります。まあ言ってみれば;Reactコンポーネントのthis.props.childrenにカスタム小道具を追加します。

<Toolbar><div>C1</div><div>C2</div></Toolbar> 

私はToolbar{children}内部を使用して子供を印刷するとき、私はそれらを見ることができます。しかし、私はいくつかの小道具を追加/塗りつぶす必要があるので、(他の配列のように)反復処理したい。しかし、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

を追加した後に子供を返すためにReact.Children.map、その後React.cloneElementを利用するだろう - しかし、私はあなたのコンポーネントが定義されているファイルから正しくエクスポートされ、正しくインポートされていることを確認します。私はそれをどのように定義したのかを見たいと思うでしょう。 –

答えて

5

あなたは配列である、あなたはまた、潜在的に各項目にキープロパティを追加したいと思う人の子供を想定した新しい小道具

{React.Children.map(children, child => { 
       return React.cloneElement(child, { 
        ...newProps 
       }); 
      })} 
関連する問題