作成中のコンポーネントの子要素を変更して複製しようとしていますが、children
> の渡し方によって children
型が変わることに最近気付きました。
たとえば、JSX を子として渡す場合:
リーリーMyComponent の
children 構造を検査すると、次のようなオブジェクトが表示されます。
リーリー
props.children が存在するため、
React.cloneElement はそれを直接使用できます。
リーリー
そして次のように使用してみてください:リーリー
そうすると、children オブジェクトの構造は次のようになります:
リーリー
を呼び出さない限り、React.cloneElement
は使用できなくなりましたが、これに関するドキュメントはあまり見つかりません。
なぜこのようなことが起こるのでしょうか?これは期待されていますか?子のツリー全体のクローンを作成するには、
を呼び出すことが唯一の方法ですか?
P粉7446912052023-09-11 14:15:23
は div であり、
は div を返す関数なので、明らかに同じものではありません。 < br>
props
として空のオブジェクトがあります。子オブジェクトがなく、値を持つプロパティを渡していないため、props
は # です。 ##{}。
返される親 JSX 要素は、実際には
children.type() (関数が返すもの) であり、その中に子がラップされています (Hello) ので、
children.type().props.children もここに存在するため、クローンを作成できます。 < /code>