J'essaie d'enrouler ma tête autour de l'accès à l'état dans Redux actionCreators; à la place a fait ce qui suit (opération ajax effectuée dans le réducteur). Pourquoi ai-je besoin d'accéder à l'état pour cela - parce que je veux effectuer ajax avec un jeton CSRF stocké dans l'état.Effectuez Ajax Fetch dans un Redux Reducer?
Quelqu'un pourrait-il s'il vous plaît me dire si ce qui suit est considéré comme une mauvaise pratique/anti-modèle?
export const reducer = (state = {} , action = {}) => {
case DELETE_COMMENT: {
// back-end ops
const formData = new FormData();
formData.append('csrf' , state.csrfToken);
fetch('/delete-comment/' + action.commentId , {
credentials:'include' ,
headers:new Headers({
'X-Requested-With':'XMLHttpRequest'
}) ,
method:'POST' ,
body:formData
})
// return new state
return {
...state ,
comments:state.comments.filter(comment => comment.id !== action.commentId)
};
}
default: {
return state;
}
}
Merci beaucoup de précisions de votre & @ WitVault, ce que vous dit tous les deux fait beaucoup de sens.J'ai réalisé des actions asynchrones avec thunk; mais, ce que je ne peux pas comprendre est, comment puis-je faire un api appel (fetch), mais ajouter des données de l'état dans mes vars POST lors de la récupération? Par exemple: un jeton CSRF? – sammysaglam
@sammysaglam consultez la réponse mise à jour. Vous pouvez avoir un second paramètre qui est une fonction 'getState', qui retournera l'objet d'état de base. – Matthew
qui a fonctionné! incroyable! Merci beaucoup! J'essayais de comprendre cela pour une bonne heure maintenant! – sammysaglam