Disons que j'ai un Link
qui m'envoie vers une page pour ajouter/modifier une entrée de liste.
Comment puis-je envoyer une action Redux lorsque je clique sur le Link
lui-même afin de pouvoir mettre à jour le magasin Redux d'abord, avant d'être réellement redirigé vers cette page.
Par exemple: je clique sur le bouton Modifier -> L'action est envoyée -> Magasin mis à jour, {'state': 'edit-mode'}
-> Procéder à la redirection.
Ou avez-vous une autre façon de réaliser ce que j'essaie de faire?
Peut-être que lorsque le composant sera monté, j'exécuterai une action comme stateToEdit
en fonction de certaines conditions? Si oui, alors montrez-moi votre chemin. Merci
PS: J'utilise un seul composant pour tous les ajout/modification/suppression. Je pense donc à un moyen de rendu basé sur le state
que ce soit sur edit-mode
ou delete-mode
etc.
Voici quelques façons de résoudre ce problème:
Link
, essayez d'utiliser browserHistory.Push(path)
avec une fonction onClick
. onClick
, vous pouvez dispatch
votre action, puis Push
vers un nouvel emplacement.redux-thunk
, Qui fournit un moyen générique d'effectuer plusieurs "actions" (qu'il s'agisse d'appeler une action Redux, ou d'effectuer une opération asynchrone, ou les deux!) En réponse à un changement. redux-thunk
Offre réellement: Puis-je envoyer plusieurs actions sans le middleware Redux Thunk?incrementTwice
, imaginez simplement remplacer l'un des appels dispatch(increment)
par un appel à browserHistory.Push(action.path)
, similaire à ce qui suit:Action de thunk Redux
export const dispatchThenRoute = (myAction, myPath) => {
return (dispatch) => {
dispatch(myAction)
browserHistory.Push(myPath);
}
};