Redux Saga 观看多重动作

Redux Saga Watch Multiple Action

我的 Saga Root 看起来像这样

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

它监视 LOAD_SEARCHRESULTS 操作,然后调用 getSearchResults 函数。

有什么方法可以在 root 中观看多个操作? 像这样:

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

因此,如果出现任何这些操作 - 它会调用 getSearchResults。我试过 yield all([]) 和 takeEvery 但它只监视第一个动作。

takeLatest也可以采取一系列的动作,所以你只需要做

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

另一种选择是使用 allfork,例如 here