2017-07-15 8 views
1

Store.subscribe(()=> {})は、Reduxストアの変更を監視する唯一の方法ですか?私は私のユーザー非同期とアプリがユーザーストアにロードされた時点でフェッチReactJS redux購読文

ので、私はこのような何かをしなければならない可能性が高い空されています。今、私は3つのまたは4つの成分を持っている

store.subscribe(() => { 

     var users = store.getState().users; 
     if(users.length > 0) { 
      this.setState({ ... }) 
     } 

     }); 

私がする必要がありますそれぞれに同じロジックを使用してください。私の質問:この問題に対するより洗練されたソリューションがありますか? Reduxの変更を「グローバルレベル」で聞くにはどうすればよいですか?

+0

react-reduxのドキュメントを読んだことはありますか? – Alexander

+1

通常、トップレベルのコンテナに変更を保存し、その変更を小道具を介してコンポーネントに渡すだけです。多くの小道具を渡すことがあまりにも不十分であると分かった場合は、子コンポーネントで再登録する必要があります。 https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0 –

答えて

2

2つの回答があります。

はい、ストアを変更するために店を見る唯一の方法です(ストアでもSymbol.observableを実装しているニックピッキングの例外があるため、あなたもobservablesを使用している場合はその方法で登録できます)。

しかし、正規のReact-Reduxのconnect機能は、すでに店舗購読のプロセスを処理しており、コンポーネントに必要なデータを抽出しています。あなた自身ストア購読ロジックを書き込まないでください - connectを使用してください。 (私はReddit explaining why you should use React-Redux instead of manually subscribingに長いコメントを書きました)