在promise axios.all中找不到数据

问题是(this.form.tasks都没有其他数据)在promise中找不到()
与axios.all。

除了它的工作承诺,但不在里面。 我收到错误:</ p>


未捕获(在承诺中)TypeError:无法读取null的属性'form'</ p>
</ blockquote>

  axios.all([
axios.get('/ tasks /'+ this.token_proj),
axios.get('/ keywords /'+ this.token_proj),
axios.get ('/getTasks/'+this.token_proj),,n 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;

})) ;
</ code> </ pre>

任务变量在数据中设置并存在。 我使用Vuejs和axios vform。</ p>

  data(){
return {
form:new Form({

tasks:[],
tasks_management: [],
讨论:{},
用户:[],
关键字:[],

})
}
}
</ code> </ pre>
</ DIV>

展开原文

原文

Problem is that (this.form.tasks neither other data) cannot be found in the promise then() with axios.all. Outside the promise it works but not inside. I get the error :

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;



        }));

The tasks variable is set in data and exist. I use Vuejs and axios vform.

data(){
        return{
            form: new Form({

            tasks:[],
            tasks_management:[],
            discuss:{},
            users:[],
            keywords:[],


            })
        }
    }

duanqin7791
duanqin7791 它完美地感谢你@HusamIbrahim!
一年多之前 回复
dphs48626
dphs48626 在你的axios调用之前创建一个变量constvm=this,并在你的回调函数vm.form.tasks=tasksResponse.data中使用它。
一年多之前 回复

1个回答

Instead of aliasing this consider using the fat arrow function to retain the scope of this inside of the anonymous callback:

.then(axios.spread((tasksResponse, keywordsResponse,getTasksResponse,discResponse) => {
  //this is now scoped correctly.
}))
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问