J'effectue une validation de base dans un créateur d'actions liées.Dispatch conditionnel en action Créateurs
const mapDispatchToProps = {
onSomething: (props) => {
if (performValidation(props)) {
return { type: 'SOME_ACTION' };
}
}
};
Si la validation échoue et que je ne renvoie pas d'action à expédier, j'ai reçu l'erreur.
Les actions doivent être des objets simples. Utilisez un middleware personnalisé pour les actions asynchrones.
Est-ce normal? Je peux contourner le problème en utilisant un thunk, mais cela semble excessif pour la répartition conditionnelle non-asynchrone.
Je pensais autant. Ne devrait pas expédier simplement ignorer indéfini. Cela permettrait l'envoi conditionnel comme ci-dessus sans middleware requis. – madcapnmckay
Non. Le contrat pour 'dispatch()' est que toute autre chose qu'un simple objet JS atteignant le réducteur est considérée comme une erreur, point. Les intergiciels peuvent "apprendre" à "envoyer" pour accepter des valeurs d'objet non-simple en les empêchant d'atteindre les réducteurs, ou en les transformant en cours de route. 'redux-thunk' recherche les fonctions, les appelle et ne les transfère pas le long du pipeline de middleware. Vous pouvez facilement écrire un middleware pour capturer des valeurs non définies, mais cela est distinct du comportement de contrat API de la base de données. – markerikson