ReduxとのリアクションはモデリングUIの状態が優れていますが、が発生する場合があります。が発生する場合があります。UIは個別の手順でそのイベントを処理する必要があり、その一時的なイベント任意の期間にわたって存続する状態の一部として。 JSビン状コードエディタアプリケーションからReact/Reduxで過渡事象をモデル化する方法は?
二つの例、:
- ユーザがGitHubのの要旨にそのコードをエクスポートします。エクスポートが完了したら、要点を表示する新しいブラウザウィンドウを開きます。したがって、Reactコンポーネント階層は要点のIDを知る必要がありますが、その時点ではウィンドウを開き、要点のエクスポートを完全に気にしなくなります。
- ユーザがエラーメッセージをクリックすると、エラーが発生した行がエディタによってフォーカスされてエディタに表示されます。繰り返しますが、UIはある時点でどのラインをフォーカスする必要があるかを気にしています。その時点で、(非リアクションベースの)エディタにラインをフォーカスするように指示され、全体が忘れられます。
私が作ってみた少なくとも不満足な解決策がある:
- トリガイベントが発生すると、(集中する主旨のID、ライン)必要な情報をReduxの状態を更新するためにアクションを派遣
- その情報に興味のあるReactコンポーネントは、ライフサイクルフックの適切な小道具(
componentWillReceiveProps
など)を監視します。 - コンポーネントは直ちに、「これを処理しました」という基本的に別のイベントをReduxストアにディスパッチします。このイベントは、 。一時イベントデータはRedux状態から削除されます。
このような状況に適したパターンがありますか?私は、おそらく画像の基本的な部分は、アクションに対するUIのレスポンスが常にReactコンポーネント構造から外れることです(新しいウィンドウを開き、エディタのAPIでメソッドを呼び出すなど)。
あなたのやり方は、通常、私がそれをやる方法であり、あなたがReduxを使うとき、これが "働く"方法と信じています。あなたは "this with"フラグを持ち上げ、更新フックで処理します。私は興味深い答えのために、この質問に従います。 –