doushi1974
2019-02-27 00:20
浏览 312
已采纳

在promise axios.all中找不到数据

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:[],


            })
        }
    }

图片转代码服务由CSDN问答提供 功能建议

问题是(this.form.tasks都没有其他数据)在promise中找不到() 与axios.all。 除了它的工作承诺,但不在里面。 我收到错误:

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

  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; 
 
 
 
}))  ; 
   
 
 

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

  data(){
 return {
 form:new Form({
 
 tasks:[],
 tasks_management:  [],
讨论:{},
用户:[],
关键字:[],
 
 
})
} 
} 
   
  
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • dowy77780 2019-02-27 00:47
    最佳回答

    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.
    }))
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题