私のReact/Reduxアプリケーションでは、アプリケーション全体で使用されるべき状態のコンポーネントを実装する問題に直面していることがよくあります。 単純なポップアップコンポーネントを、どのページでも再利用できるオープン/クローズ状態の例として考えてみましょう。その状態を管理するために(のネイティブsetState
を反応させるのためだけの構文糖である私はrecompose.withReducerを使用)Reusable react-reduxコンテナコンポーネント
使用
setState
と「ローカル」減速: は、ここに私が見つけた2可能なアプローチです。あなたのページの他の部分でコンポーネントの状態を変更する必要があるまで、簡単に再利用できます(閉じるポップアップの場合)。そしてあなたは状態を変えるためにいくらかの還元行為を呼び出すことはできません。コンポーネントの状態をReduxストアに保存します。このようなアプローチでは、コンポーネントツリーの任意の場所にある
closePopupAction({ id })
を呼び出して状態を変更することができます。しかし、コンポーネントがマウントされて削除されると、減速機(ポップアップのフォルダに入れたい)をルートレデューサーに置く必要がありますコンポーネントがアンマウントされたとき。さらに、ページ内に複数のポップアップがあり、それぞれに独自の状態があります。
誰も同じような問題に直面しましたか?
をあなたが何を求めているのか分かりません。どのソリューションが他のソリューションよりも優れているか尋ねていますか? – wuct
両方の方法では動作しません。だから私は他の何かを探しています –
あなたは何を達成したいと思いますか?私は両方の方法が成功していると信じています'recompose'の場合、他のサブツリーで' setState'を呼び出そうとすると 'withState()'を上位のノードに持ち込むことができます。 'redux'の場合、状態が極端に大きくならない限り、減速機を取り外す必要はありません。 – wuct