Lorsque je souhaite envoyer une requête, ne puis-je pas simplement l'écrire directement dans la fonction fetch ? Pourquoi ai-je besoin d'une étape supplémentaire de middleware ?
const mapDispatchToProps = ( dispatch )=>({
fetchAndRenderArticle( articleName ){
fetch(`http://localhost:3000/getFile?articleName=${articleName}`).then( res=> {
return res.text();
}).then( articleContent =>{
dispatch({
type:'fetchAndRenderArticle',
articleContent:articleContent
});
}).catch( err=>{
console.log(err);
});
}
});
Le middleware asynchrone est utilisé pour écrire des actions asynchrones.
En fait, votre question est plutôt de savoir pourquoi vous devez utiliser une action asynchrone, pourquoi les requêtes sont-elles encapsulées dans des actions ?
Action gère le déclenchement de manière unifiée, le réducteur gère la réception de manière unifiée et change de statut. Il s'agit simplement d'un modèle de conception visant à réduire le couplage de code.
Donc, pour votre question, la requête doit être encapsulée dans une action asynchrone, et l'action asynchrone repose sur un middleware asynchrone. C'est pourquoi un middleware asynchrone Redux est nécessaire.