Je soumets une demande de suppression à mon backend onClick et lorsque j'obtiens la réponse du serveur, j'essaye d'appeler une fonction dispatch pour mettre à jour le magasin Redux. Les données de backend peuvent supprimer la demande efficacement; Cependant, quand je comprennent l'appel d'expédition, React me donne cette erreur:La fonction n'enverra pas Redux Dispatch après une demande Fetch Delete dans React
./src/actions/questions.js
Line 68: 'dispatch' is not defined no-undef
J'ai essayé des tonnes de syntaxe différente et les combinaisons .alors après la réponse reçue, mais rien ne fonctionne. Ceci est déroutant pour moi parce que dans le thunk chercher les appels que je fais, je suis en mesure d'appeler la répartition lorsque je reçois la réponse. Je ne suis pas en mesure d'utiliser la syntaxe thunk traditionnelle car elle ne déclenchera pas la requête car elle est initialement déclenchée dans un événement onClick d'un composant. Ainsi, la suppression d'extraction demande que je fais ressemble à ceci:
export function deleteQuestion(questionId, routerHistory) {
return fetch(`${API_URL}/questions/${questionId}`, {
method: 'DELETE',
}).then(res =>
dispatch(removeQuestion(questionId)))
}
J'ai pensé à l'envoi juste removeQuestion en dehors de la méthode, mais je crains que le magasin Redux deviendrait pas synchronisé avec les données back-end et causer des problèmes plus tard. J'apprécierais grandement tout aperçu que quelqu'un pourrait fournir. Je ne pense pas que la suppression d'un élément et la mise à jour du magasin Redux soient si difficiles.
C'est le github ainsi: https://github.com/jwolfe890/react_project1/blob/master/stumped-app-client/src/actions/questions.js
Merci encore.
J'ai essayé cette approche initialement, mais dans un gestionnaire onClick, cela me cause des problèmes. Pour que l'appel fetch soit exécuté, je dois inclure les éléments suivants dans la méthode onClick: – Dog
handleDelete =() => { const {questionId} = this.props.match.params const {history} = this.props deleteQuestion (questionId, history) (deleteQuestion); } – Dog
Fondamentalement, appeler la méthode deux fois. Et au deuxième appel, la fonction de répartition ne fonctionnera pas. – Dog