2016-09-05 7 views
0

既にレンダリングされたReact成分を完全にクローニングするかどうかは不思議です。私は約cloneElementを読んだが、私はそのクローンをレンダリングするとき、私はエラーを取得する:完全クローン入力値を含む反応成分

Uncaught error: Invariant Violation: Element type is invalid

これは、要素の子要素、およびそれに続く入力値のクローンを作成する場合は私も思ったんだけど。たとえば、入力の一部にテキストが含まれていて、コンポーネントがクローンされている場合、これらの値は保持されますか?または、クローンの前にこれらの値を保存する唯一の選択肢ですか?これは非常に密接に私が感じるカップルになります。

答えて

1

原則として、私たちは常にコンポーネントをできるだけステートレスにしておく必要があります。つまり、フォームに入力したデータをコンポーネントの外に保存する必要があります約http://alt.js.org/docs/stores/を考えています)。

このアプローチでは、コンポーネントがそのストアをリッスンします。あなたは望みどおりの数のコンポーネントをコピーすることができますが、単一の真実のソースはあなたのストアになります。

別のシナリオでは、同じコンポーネントが異なるストアのデータを表示する必要がある場合は、ストアを使用せず、小道具を使用します。親コンポーネントをそのストアを聴いているコンポーネントにし、必要なデータを子コンポーネント(アプリケーションのいくつかの場所にクローンを持ちたいもの)に渡します。

私が役に立ったら、

関連する問題