3

地図アプリを開発しています。これは、次の 2 つのコンポーネントで構成されています。

  • 現在のユーザーの場所を表示するコンポーネント。と
  • 住所の候補がある住所検索コンポーネント。

これらのコンポーネントは、次の状態ドメインに依存しています。

state.userAddress = {
    name: 'Didzioji g. 10, Vilnius'
};

state.addressSearch = {
    state: 'inactive',
    query: '',
    addresses: []
};

ユーザーが住所候補リストから住所を選択すると、イベント ハンドラーが呼び出されますonSelectAddressonSelectAddress2 つの状態変化をトリガーする必要があります。

  • userLocation新しい場所に設定します。と
  • 場所の選択プロンプトを閉じるよう通知する

これを設計する正しい方法は何ですか?

  • スマート コンポーネントが 2 つのアクションを次々にディスパッチする必要がありUSER_LOCATION_CHANGEますADDRESS_SEARCH_HIDE。また
  • スマート コンポーネントは、USER_CHANGE_LOCATION2 つの異なるレデューサーによって処理される単一のアクション (例: ) をディスパッチする必要がありますか?
4

1 に答える 1

3

同様の状況で、ターゲット アクションから別のアクションをディスパッチすることを選択します。

これをコードで表示しようとしています

module.exports.locationChange = function clickElement(element) {
    return function(dispatch, getState) {
        dispatch({
            type: actionTypes.USER_CHANGE_LOCATION
        });

        dispatch({
            type: actionTypes.ADDRESS_SEARCH_HIDE
        });
   }};

非同期アクションには redux-thunk を使用します。

于 2015-08-21T15:43:18.870 に答える