Redux Saga观看多个动作

时间:2018-10-04 19:30:59

标签: javascript reactjs react-redux redux-saga

我的传奇根看起来像这样

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,但是它只能监视第一个动作。

1 个答案:

答案 0 :(得分:12)

takeLatest也可以执行一系列操作,因此您只需要执行

getUsers() {
    return this.userService.getUsers().pipe(map(data => this.users = data));
}

另一种选择是使用export default function* root() { yield takeLatest([LOAD_SEARCHRESULTS, CHANGE_ALIASFILTER, CHANGE_CATFILTER], getSearchResults); } all,例如here