web-dev-qa-db-ja.com

Redux Saga Watch Multiple Action

私の佐賀ルートはこんな感じ

export default function* root() {
  yield takeLatest(LOAD_SEARCHRESULTS, getSearchResults);
}

lOAD_SEARCHRESULTSアクションを監視してから、getSearchResults関数を呼び出します。

ルートで複数のアクションを見る方法はありますか?このようなもの:

export default function* root() {
  yield takeLatest(LOAD_SEARCHRESULTS, getSearchResults);
  yield takeLatest(CHANGE_ALIASFILTER, getSearchResults);
  yield takeLatest(CHANGE_CATFILTER, getSearchResults);
}

そのため、これらのアクションのいずれかが入った場合、getSearchResultsを呼び出します。 yield all([])とtakeEveryを試しましたが、最初のアクションのみを監視します。

9
Daman

takeLatest はアクションの配列をとることもできるため、必要なことは

export default function* root() {
  yield takeLatest([LOAD_SEARCHRESULTS, CHANGE_ALIASFILTER, CHANGE_CATFILTER], getSearchResults);
}

別のオプションは、 here のようにallforkを使用することです

19
leonprou