2017-06-06 3 views
0

私は自分のノーマライザーを作成しました。それはサガでの作業です。各モデルのロードアクションはputです。たとえば、投稿のロードをディスパッチして、コメントのロードをディスパッチできます。mapDispatchToPropsを呼び出す前に佐賀が終了するまでの待ち受け方法

私の問題は、私がポストのためにロードするためにディスパッチすると、connectはmapStateToPropsを実行し、コンポーネントを再レンダリングすることです。

接続がmapStateToPropsを実行してコンポーネントを再レンダリングする前に、すべてのロードアクション(つまり、両方の投稿とコメント)を実行するまで待つ必要があります。

+1

コンポーネントの再受信を自分で制御します.WillReceiveProps(nextProps、nextState) - 再レンダリングしないあなたの小道具があなたの望むように満たされるまで)。 –

+0

固溶体!提案していただきありがとうございます! –

答えて

0

私が使用した解決策は、すべてのデータリデューサが聴いた "LOAD_NORMALIZED_DATA"という1つのアクションを呼び出すことでした。私はそれに正規化されたデータの全体のチャンクを送り、レデューサーが必要に応じてそれを選ぶようにしました。

1つのアクションのために1つの再レンダリング。

Chris Cousinsは、コンポーネントに必要なデータがあるまで、componentWillReceiveProps(またはshouldComponentUpdate)を使用してfalseを返すというコンポーネントあたりの優れたソリューションを提供しました。 [正規化を行うと、データが失効しているかどうかを追跡するために多くの追加状態が必要になります]

関連する問題