2016-09-08 2 views
2

Как вызвать функцию внутри Аксиос, то ниже мой код, который не работаетЗатем вызов функции изнутри аксиом?

handleClick(userid){ 
    axios.get(
    "http://localhost:4000/user/"+userid+"/items.json") 
    .then(function (response) { 
     dispatch(this.buildhtml.bind(response)) 
    }) 
} 


    buildhtml(response){ 
    console.log("m called") 
    } 

функция buildhtml не выполняется !! любая идея

ответ

3

Ваш код не работает, потому что ваш this будет не определен с текущей реализацией, которую вы имеете.

Можете ли вы попробовать это?

handleClick(userid){ 
    var self=this; 
    axios.get(
    "http://localhost:4000/user/"+userid+"/items.json") 
    .then(function (response) { 
     self.buildhtml.bind(response) // would work 
     dispatch(self.buildhtml.bind(response)) //wont work 
    }) 
} 

    buildhtml(response){ 
    console.log("m called") 
    } 

Теперь я вижу, что выше не будет работать, даже если вы измените его на себя. Вы пытаетесь использовать отправку. При отправке вам необходимо пройти .. Редукторы принимают состояние и действие в качестве параметров, и они обновляют состояние, исходя из того, какое действие передано.

Теперь действие может возвращать объект или функцию. Пожалуйста, ознакомьтесь с концепциями redux один раз. Это не так, как нужно отправить действие

+0

не сработало :( – ashwintastic

+0

Вы можете поделиться своим компонентом один раз? Создайте скрипку и поделитесь ссылкой? –

+0

, пожалуйста, проверьте эту ссылку [fiddle link] (https://jsfiddle.net/ob1c0aye/1/) – ashwintastic

1

При использовании Vue.js с axios у меня тоже была эта проблема, но я так решил.

let vue = new Vue({ 
el:#<element>, 
methods:{ 

    method1() 
    { 
axios.post('<url>',{<data>}) 
.then((res) => { 
    this.method2(res) // method call to method2 
    }) 
.catch((err) => { <call> });  
    },//method1 end 

method2(res){ 
// statements 
} 

} 
}); 

См this.

Смежные вопросы