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 => {
// ...
})