2017-12-26 30 views
0

自分のページにチェックボックスベースのフィルタリングを実装したいと思います。私がチェックボックスをクリックすると、状態を変更し、チェック項目に基づいてajax呼び出しを行いたい。状態変更後にajaxを呼び出す

私が選択した項目からIDを削除/追加toggleCheckbox(id)アクションと減速を作成しましたが、私は、AJAX呼び出しを配置する必要がないアイデアを持っていません。

アイデア?

答えて

0

ネットワーク呼び出しは非同期であり、そしてアクションは、デフォルトの同期です。彼らはただのオブジェです。非同期動作を処理するには、redux-sagasやredux-thunksのような副作用ライブラリが必要です。 https://redux.js.org/docs/advanced/AsyncActions.htmlhttps://redux-saga.js.org

+0

ありがとう、私はサガやサンクを使用する必要があることを知っています。私の問題は、このAJAX呼び出しをどこで行うべきかということです。そのため、状態を変更しました。 –

+0

サンクまたはサガ(あなたが使用しているもの)から、成功アクションをディスパッチし、アクションペイロードに新しいデータを渡します。次に、減速機のペイロードを使用して状態を変更します。 –

1

コンポーネントは非同期アクションをディスパッチして、選択したアイテムを切り替えるロジックが重複しないようにして、非同期アクションに移動し、通常アクションをトグルからセットに変更する必要があります。このように:

const toggleCheckbox = id => (dispatch, getState) => { 
    const items = toggle(id, getState().selectedItems); 
    dispatch(setSelectedItems(items)); 
    // call API with "items" 
}; 
関連する問題