2016-10-05 9 views
0

のは、私は次のような構造を持っていると仮定しましょう:突然変異の兄弟構成要素を更新しますか?

<div> 
    <Form /> 
    <List /> 
</div> 

現在の設定:クエリが<List />コンポーネントであり、変異が<Form />コンポーネントです。 <Form />にはクエリがありませんので、getFatQueryはそれを比較することができず、clientMutationIdしか返しません。最終的にリストデータがページリフレッシュなしで更新されないことを意味します。

どうすればこの仕事をすることができますか?私はモーダルで突然変異を作りたいので、別のフォームコンポーネントが必要です。私は<List />に突然変異そのものを作って、<Form />から<List />への "トランスポート"のデータを作るべきですか?

私は別のコンポーネントにデータ(フォームコンポーネント)を゗ンストレートしたいという同様の状況がたくさんありますが、これらの状況の戦略は何ですか?

答えて

0

Reactで状態管理をしようとしていますが、階層内の「データを渡す」という簡単な方法がないため、混乱する可能性があります。

一般的な解決方法は、親コンポーネントにデータを保持させ、FormおよびListコンポーネントがこのデータに反応し、この親コンポーネントから渡されたコールバックを介してのみ変更することです。

もう1つの一般的な解決策は、アプリケーションレベルの状態データを処理するためにアプリケーションにReduxを追加することです。これにより、すべてのデータをstoreという1つのオブジェクトに保持することができるため、どのコンポーネントでも変更をサブスクライブすることが容易になり、データの受け渡しを行う親コンポーネントが不要になります。

+0

自動UI更新を取得するには、クエリと突然変異*は同じコンポーネントで*する必要がありますか? – Solo

+0

それが質問ならば、答えはいいえ – ZekeDroid

+0

あなたはあなたの答えを更新し、それを少数の文でエクスクルーズできますか?リレーコンポーネント/クエリが別のコンポーネントにある場合、Relay.jsは自分のストア(およびUI)を新しいデータ(突然変異ペイロード)で更新しません。 – Solo

関連する問題