vue 下使用 axios 的问题

初学者,在使用axios处理返回值时chrome出现了

TypeError: Cannot set property 'menu' of undefined

错误,不知何解。
menu变量我已在data中定义。
使用mockjs进行拦截。
axios部分代码如下
clipboard.png
其中response.data.menu在console中可以正常显示,但是赋值语句会报如上错误。
为了对比,我还在axios之前在页面本地创建了一个含数据的menu2变量并赋值给this.menu,不会有问题
clipboard.png
menu2中的数据是直接复制的mockjs中的模拟数据。
不过这种方式制作的数据在chrome的console中有所不同:
clipboard.png
展开后也会多出一些数据
clipboard.png
不知何解

阅读 2.2k
2 个回答
then(function(response){
    this.menu =....
})

改成

then(response => {
    this.menu =....
})

返回的是字符串,需要指定返回类型为json

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题