Je suis nouveau pour réagir et mon problème est que je vais faire une demande de publication sur mon nœud principal. en utilisant react-redux et axios. le truc, c'est que mon back-end ne répond même pas à la demande. et aucune action sur l'onglet réseau dans l'éther du navigateur
J'ai essayé beaucoup d'autres réponses mais ne fonctionne pas
ce code est dans ma page d'action redux
export const postNominationPayments = function
postNominationPayments (candidatePayments) {
let nominationPayments = { depositor:candidatePayments.depositor, depositAmount:candidatePayments.depositAmount, depositeDate:candidatePayments.depositeDate, filePath:candidatePayments.filePath, status:candidatePayments.status, nominationId:candidatePayments.nominationId }; return function (dispatch) { console.log("**",nominationPayments); var headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', } axios .post( `${API_BASE_URL}/nominations/payments`, { nominationPayments },{headers: headers} ) .then(response => { console.log("))))))))))))",response); // dispatch({ // type: POST_NOMINATION_PAYMENTS, // payload: response.data // }) }) .catch(error => { console.log("===",error); // dispatch({ type: AUTH_FAILED }); // dispatch({ type: ERROR, payload: error.data.error.message }); }); };
}
les données de publication arrivent comme prévu. aussi le retour fonctionne correctement en utilisant le facteur. mais ça ne marche pas. ne pouvait pas penser à une solution. quel est le problème avec mon code? merci d'avance
3 Réponses :
La façon dont vous transmettez les données à axios post request est incorrecte. Vous devez transmettre quelque chose comme ci-dessous
Changer
axios.post( `${API_BASE_URL}/nominations/payments`, nominationPayments, { headers: headers } )
En
axios( `${API_BASE_URL}/nominations/payments`, { nominationPayments },{headers: headers} )
Cela devrait être
axios.post( `${API_BASE_URL}/nominations/payments`, nominationPayments, {headers: headers}).
On peut également supprimer la section des en-têtes et une valeur par défaut est application/json
quand je supprime la fonction de retour (dispatch) {} partie ça marche.. pourquoi est-ce
Comment appelle-t-on cette fonction?
if (activeStep === 2) {postNominationPayments (this.state);
appelez-le en utilisant, this.props.dispatch (postNominationPayments (this.state));
c'était le problème .. auparavant, je n'appelais pas comme ça.props .. maintenant ça marche..merci
axios.get
et axios.post
prennent différents types d'arguments et peuvent être difficiles à retenir.
Je m'en tiens donc généralement à la manière la plus verbeuse:
axios({ method: 'post', url: `${API_BASE_URL}/nominations/payments`, data: { nominationPayments }, headers }) .then(response => { // ... }) .catch(error => { // ... })