【发布时间】:2019-07-20 15:03:48
【问题描述】:
问题是(this.form.tasks没有其他数据)在promise then()中找不到 与 axios.all。 在承诺之外它有效,但在内部无效。我得到错误:
Uncaught (in promise) TypeError: Cannot read property 'form' of null
axios.all([
axios.get('/tasks/'+this.token_proj),
axios.get('/keywords/'+this.token_proj),
axios.get('/getTasks/'+this.token_proj),
axios.get(`/discussion/${this.token_proj}/${this.form.page}`)
])
.then(axios.spread(function (tasksResponse, keywordsResponse,getTasksResponse,discResponse) {
console.log('tasks', tasksResponse.data);
console.log('keyword', keywordsResponse.data);
console.log('getrask', getTasksResponse.data);
console.log('disc', discResponse.data);
this.form.tasks = tasksResponse.data;
}));
tasks 变量在 data 中设置并存在。我使用 Vuejs 和 axios vform。
data(){
return{
form: new Form({
tasks:[],
tasks_management:[],
discuss:{},
users:[],
keywords:[],
})
}
}
【问题讨论】:
-
在您的 axios 调用之前创建一个变量
const vm = this并在您的回调函数vm.form.tasks = tasksResponse.data中使用它。 -
它工作得很好,谢谢@HusamIbrahim!