私の React/Redux アプリでは、アプリ全体で使用する必要がある状態を持つコンポーネントを実装するという問題に直面することがよくあります。どのページでも再利用できるオープン/クローズ状態の例として、単純な popup コンポーネントを見てみましょう。私が見つけた2つの可能なアプローチを次に示します。
その状態を管理するには
setState
、「ローカル」レデューサー ( React のネイティブの構文シュガーである recompose.withReducerを使用します) を使用します。setState
ページの他の部分でコンポーネントの状態を変更する必要があるまでは、簡単で再利用可能に見えます (アウトの場合はポップアップを閉じます)。また、状態を変更するために redux アクションを呼び出すことはできません。コンポーネントの状態を Redux ストアに保持します。このようなアプローチを使用すると
closePopupAction({ id })
、コンポーネント ツリーの任意の場所で呼び出すことができ、その状態を変更できます。コンポーネントはアンマウントされています。さらに、ページに複数のポップアップを含めることができ、それぞれに独自の状態があります。
誰かが同様の問題に直面しましたか?