2017-08-06 1 views
1

Je veux faire une demande de vente avec Axios et je suis arrivé cela à l'intérieur de mon action à ce jour:Faire une demande avec Axios | React, Redux

export function updateSettings(item) { 
    return dispatch => { 
    console.log(item) 
    return axios.put(`/locks`).then(response => { 
     console.log(response) 
    }) 
    } 
} 

Quand je CONSOLE.LOG item je peux voir toutes les choses que j'ai tapé dans mon entrer des boîtes à l'intérieur de cet objet, mais plus tard, je reçois 404. Je sais que j'ai cet URI. Est-ce que quelqu'un sait comment résoudre ce problème?

Répondre

2

une réponse put aura besoin d'un objet avec lequel envoyer. Axios correct pour mettre est la suivante:

export function updateSettings(item) { 
    return dispatch => { 
     console.log(item) 
     return axios.put(`/locks`, item).then(response => { 
      console.log(response) 
     }) 
    } 
} 

c'est très probablement la raison pour laquelle vous obtenez l'erreur parce que l'objet de PUT avec est indéfini.

Vous pouvez regarder cette liste sur le lien ci-dessous, sur la façon de faire les bonnes requêtes avec axios. Axios request methods

+1

Je vais vous donner un upvote pour le signaler, mais je reçois toujours l'erreur. –

+0

Que dit l'erreur? essayez d'ajouter après 'then' le' .catch (error => console.log (error)) 'mais cela pourrait aussi être une erreur du côté de l'API, essayez de vous connecter autant que vous le pouvez pour essayer de déterminer quand et où et pourquoi vous obtenez ce 404 renvoyé à vous. –

+0

C'est l'erreur: 'PUT http: // localhost: 3001/locks 404 (non trouvé)'. –

1

Une demande PUT requiert un identificateur (par exemple, id) pour la ressource et la charge utile à mettre à jour avec. Vous ne semblez pas identifier la ressource que vous souhaitez mettre à jour, par conséquent .

vous auriez besoin d'un id et article comme ceci.

export function updateSettings(id, item) { 
    return dispatch => { 
    console.log(item) 
    return axios.put(`/locks/${id}`, item).then(response => { 
     console.log(response) 
    }) 
    } 
} 
+0

ajouter le $ à l'axios.put (\ '/ locks/$ {id} \', article) 'de sorte que cela fonctionnerait juste pour copier coller, sinon la variable ne ajouté correctement –

+0

Je ne savais pas que Rowland, merci. Sachez que je n'ai besoin que de l'identifiant pour mon action, car il n'est pas défini pour le moment. –

+0

Bien sûr, vous pouvez faire la réponse comme * accepté * pour aider les autres qui pourraient l'avoir raté aussi – Rowland