私はReduxアプリケーションを作成しています(私の最初のものです)、アクション間のカップリングがどれほど適切かについては少し不明です。他のアクションに依存する/実行されたReduxアクション
私のアプリケーションには、URLに値がシリアル化されたいくつかのフォームがあります。
たとえば、特定の検索の入力フィールドがあり、キーアップするとurlパラメータが更新されます。このパターンに続くいくつかの入力フィールドがあります。 UPDATE_URL
のようなアクションについて
// Within the declaration of a high-level component
onForm1Change={(key, value) => {
// Listened to by "formValues" state cross-section reducer
store.dispatch({
type: actions.FORM1_CHANGE,
key: key,
value: value
});
// Listened to by "url" state cross-section reducer, leads to a url param update.
// Has it's own logic that is based upon the formValues state.
// Must run after FORM1_CHANGE finishes
store.dispatch({
type: actions.UPDATE_URL,
formValues: store.getState().formValues
});
}
}
何かが右に感じることはありません:私のトップレベルindex.js
で
は、私は次のようになり、コードのいくつかのブロックを持っています。このアクションはそれ自体ではありません。最初にディスパッチされる他のアクションに依存します。
コードの匂いのアクション間のカップリングのこの種ですか?これらのアクションを分離/リファクタリングするための共通のテクニックはありますか?
派遣の主な目的は、ストア内の状態を変更することです。 UPDATE_URLアクションは、ストア自体から来るデータを送信しているので意味をなさないため、何も変更されません。 –
@DJ。私はおそらくこれについてはっきりしていなかったかもしれませんが、UPDATE_URLを待ち受ける減速機は単にデータを渡すだけではありません。渡されたformValuesを入力として使用する独自のロジックが必要ですこれを反映するコードコメント) –