2017-09-26 1 views
1

J'utilise Axios avec React.js. Je veux appeler une fonction après la réponse de webservice. Mais cela ne fonctionne pas, voici mon code:Axios: fonction d'appel après réponse

public onValidateRenammeNature =() => { // bouton valider, renomme la nature 
    let id 
    let newName 
    console.log("this.state.myNature.id : " + this.state.myNature.id) 
    id = this.state.myNature.id 
    newName = this.refs.nature.getValue() 

    axios.post('/UpdateNature', {    
    id: id, 
    name: newName 
    }).then(

    //here I want to call this function after the webservice is executed, but I don't know how can I do that 
    this.getAllNaturesFromData() 
) 

    this.setState({ 
    openRenammeNature: false,     
    }); 
} 

Merci pour votre aide :)

Répondre

1

La fonction .then() prend dans une fonction comme argument, vous pouvez le faire

axios.post('/UpdateNature', {    
      id: id, 
      name: newName 
     }).then(function(response){ 
      this.getAllNaturesFromData() 
     }) 
//ES6 Arrow function work as well 
axios.post('/UpdateNature', {    
      id: id, 
      name: newName 
     }).then((response) =>{ 
      this.getAllNaturesFromData() 
     }) 
+0

Vous avez raison, mais il ne fonctionne pas pour moi ... J'ai modifié mon code dans une autre réponse –

0

Vous devez envoyer un argument à la fonction .then.

axios.post('/UpdateNature', {    
    id: id, 
    name: newName 
    }).then(function(res){ 
     if(res.statusCode === 200){ 
      this.getAllNaturesFromData();  // Your function call 
     } 
    }) 
-1
public onValidateRenammeNature =() => { // bouton valider, renomme la nature 
     let id 
     let newName 
     console.log("this.state.myNature.id : " + this.state.myNature.id) 
     id = this.state.myNature.id 
     newName = this.refs.nature.getValue() 

     console.log("this.props.natureSelected : " + this.props.natureSelected) 
     axios.post('/UpdateNature', {    
      id: id, 
      name: newName 
     }).then((response) => { 
      console.log("onValidateRenammeNature then") 
//The code is executed, but the list isn't update .. 
      this.getAllNaturesFromData() 
     }) 


    } 
+0

Quelle est la réponse que vous obtenez, ce qui a et n'a pas été exécuté? –

+0

@JamesMaa vous avez raison, j'ai eu une erreur dans mes accessoires. Maintenant c'est le travail. Merci beaucoup ! –