Je veux utiliser redux-actions pour simplifier mon code de réaction-redux, mais j'ai une question:Comment exprimer une action REQUEST/START via redux-actions?
Dites que j'ai l'action "charger", qui récupère certains sujets de la télécommande. de sorte que le code serait:
const load = createActions('LOAD');
export function fetch() {
return (dispatch, getState) => {
dispatch(fetchTopicsRequest()); // <- here is my question.
return network
.request('/topics?' + qs.stringify(getState().topics.filter.options))
.then(network.handleResponse)
.then(result => dispatch(load(result))) // <- here I got the topics in the payload
.catch(error => dispatch(load(error))); // <- here I got the errors in the payload, in the reducer I check on the "error" field to see if the request successed.
};
}
Je pense qu'il est bon d'avoir le résultat et a été envoyé avec une seule action erreur. mais qu'en est-il du statut "Demandant" avec la même action? comme le code ci-dessus, je ne l'ai pas compris, donc je dois faire une autre action "fetchTopicsRequest()", cela rend le code entier si bizarre. Dès la disscusion précoce, j'ai remarqué qu'il y avait un champ "status", cela pourrait être utile dans un tel cas. où est-il allé? ou j'ai juste manqué une meilleure idée?
Merci
Oh oui, votre droite. Je peux encore le corriger: les 'load (resultat)' et 'load (erreur)' sont aussi des créateurs d'action, l'action vraie est l'objet ordinaire qui a été réellement distribué. Ce que je veux dire, c'est qu'il y a un champ «error» pour l'état de l'action, mais il n'y a aucun moyen d'exprimer l'état «pending». Si j'ai besoin de connaître un tel statut, quelle est la meilleure façon de l'exprimer? –
La meilleure façon de gérer un tel cas est d'utiliser le combo d'actions et de réducteurs. Ainsi, lorsque vous envoyez l'action '' '' FETCHING_TOPICS''', vous pouvez marquer '' '' pending''' comme '' '' '' '' '' '' '' '' true''' dans votre réducteur et lorsque vous envoyez '' '' '' 'result'' 'ou' '' error''' actions alors vous pouvez changer '' 'pending''' à' '' false''' dans votre réducteur. Je vais mettre à jour la réponse pour être un peu plus verbeux. –
Désolé, mon pote. Je pense que je n'ai pas précisé que je parle de «actions de redux». la bibliothèque pour réduire le code standard. Je connais le modèle des trois actions, je veux juste utiliser des actions redux pour simplifier ma base de code. –