J'essaie de comprendre comment incorporer l'annulation de plusieurs tâches du même type d'action dans redux-saga. Fondamentalement, quand mon composant est dans componentWillUnmount()
, je veux annuler toutes les tâches qu'il a peut-être commencé.redux-saga: Annulation de plusieurs tâches du même type d'action/saga
Si je l'action suivante (ce qui est grandement simplifiée de ce que j'ai fait dans mon code, mais je suis en train de réduire ce à l'essentiel):
// Action
export const loadMyData = params => {
let url = /* Create URL based on params */
return {
type: FETCH_DATA,
url,
key: /* a unique key so we can retrieve it in the state later */
}
}
Et la saga suivante: Comme indiqué ci-dessus, le composant peut appeler plusieurs fois loadMyData()
. En outre, il peut y avoir d'autres composants qui appellent également loadMyData()
. J'essaie donc de trouver un moyen d'annuler les tâches à partir du seul composant qui est dans l'état componentWillUnmount()
, mais de laisser toutes les autres tâches en cours d'exécution intactes.
Dans le Redux Saga Cancellation documentation, leur exemple est pour une seule tâche qui attend une action d'annulation après. Et je ne peux pas comprendre comment l'étendre à mon cas d'utilisation.