2017-08-07 1 views
0

Je veux donc faire une requête PUT au serveur, mais il ne veut pas fonctionner. Je sais que lorsque vous faites une demande PUT, vous avez besoin d'un identifiant (par exemple, id) pour la ressource et la charge utile à mettre à jour avec. Donc c'est mon problème.Demande Axios PUT dans Réagir, Redux ne fonctionne pas

Dans ma forme, j'ai ces accessoires:

<div> 
    <DoorSettingsForm 
    onSubmit={this.submit.bind(this)} 
    item={this.props.location.state.item} 
    id={this.props.location.state.item._id} 
    /> 
</div> 

item - Tous les champs d'entrée, RadioButtons etc.

id - L'identifiant

onSubmit - la fonction qui gère la soumission de toutes les nouvelles données, le voici:

submit(values, id) { 
    this.props.updateSettings(values, id) 
} 

Et à l'intérieur de ma vraiment simple action que j'ai ceci:

export function updateSettings(id, item) { 
    return dispatch => { 
    console.log('ID: ', id) 
    return axios 
     .put(`${settings.hostname}/locks/${id}`, item) 
     .then(res => console.log(res)) 
     .catch(err => console.log(err)) 
    } 
} 

Une chose que je ne comprends pas quand je change les lieux de id et item sur la première ligne de la sortie de mon console.log changements. Lorsque ayant id comme premier paramètre que je reçois tout ce que j'ai tapé dans mes entrées (les changements) et en ayant item comme premier paramètre que je reçois ceci:

ID: function (action) { 
     if (action.payload) { 
      if (!(0, _isPromise2.default)(action.payload) && !(0, _isPromise2.default)(action.payload.promise)) { 
      return next(action); 
      } 

Toute aide avec mon problème est vraiment appriciated ! Merci d'avoir lu.

Répondre

0

J'ai oublié d'appeler handleSubmit avec mon id: form onSubmit={() => handleSubmit(id, item)}