为了账号安全,请及时绑定邮箱和手机立即绑定

在事件监听的回调函数里调用this.setState()函数无效

在事件监听的回调函数里调用this.setState()函数无效

侃侃尔雅 2019-03-07 18:19:40
componentDidMount() {       eventProxy.on('event', async (id) => {        const getList = (id) => {            return $http.get('api/list' + id)                .then(res => res.data.data)        }        const list = await getList(id)        console.log(list)        this.setState({ data: list}, () => console.log(this.state.data))    })}整个方法写在componentDidMount()函数里,eventProxy会监听一个event事件,并接收一个id参数,在回调函数中使用这个id参数发送请求获取一个数组,再将这个数组赋值到this.state.data。然而,console.log(list)这句话已经成功打印出数组了,console.log(this.state.data)这句却并没有执行,请问是为什么呢?应该怎么解决?by the way, state.data 在初始化的时候是个空数组。
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

看下this指向哪里,正常来说箭头函数里的this是静态绑定的,指向了组件实例对象


查看完整回答
反对 回复 2019-03-22
  • 1 回答
  • 0 关注
  • 341 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号