Exemple :
- Quand un article est ajouté au panier,
- ça appelle une méthode ‘dispatch’,
- puis trigger (déclenche) un middleware,
- le middleware va lancer une action (modifier des données, modifier le dispatch, faire un appel asynchrone à une API, changer le rooting, et cætera),
- puis rappel le dispatch.
Pour l’utiliser
Il faut importer applyMiddleware
dans store.js
Et le placer dans la constante ‘store’ en argument qui à lui-même un middleware à exécuter.
const store = createStore(rootReducer, applyMiddleware(customMiddleware));
En résumer
Un middleware :
dispatch({
type: "ADDCART",
payload: cartData
})
applyMiddleware(customMiddleware)
const customMiddleware = store => next => action => {
console.log(store); // donne le state avant que le dispatch ne soit effectué
console.log(next); // est une fonction appelée quand le travail est fini dans le middleware
console.log(action); // c'est l'action du dispatch
const actionModif ={
type: "ADDCART",
payload: 789
}
next(actionModif) // donne une nouvelle action
}
next(actionModif) // donne une nouvelle action