web-dev-qa-db-fra.com

Redux Saga Watch Multiple Action

Ma racine de saga ressemble à ceci

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

il observe l'action LOAD_SEARCHRESULTS puis appelle la fonction getSearchResults.

Existe-t-il un moyen de regarder plusieurs actions en root? Quelque chose comme ça:

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

Donc, si l'une de ces actions intervient - elle appelle getSearchResults. J'ai essayé de donner tout ([]) et takeEvery mais il ne surveille que la première action.

9
Daman

takeLatest peut également effectuer un tableau d'actions, il vous suffit donc de faire

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

Une autre option consiste à utiliser all et fork, comme ici

19
leonprou