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

mobx 修改 store 是异步的?

mobx 修改 store 是异步的?

慕盖茨4494581 2019-03-05 17:39:37
changeTest 方法是把 mobx 中的 test 从0改为1,但是控制台打印出来的依然是0,是什么原因呢?怎么解决?
查看完整描述

1 回答

?
慕莱坞森

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

这取决于你的 changeTest 是同步还是异步,如果这个方法同步更改,那取到的 test 就是修改后的,因为访问的都是同一个引用,不存在其他问题。

不过你这里的 test 是 this.props.test,如果是从父组件传下来的,还涉及到父组件的 render 问题,因为改值后,test 是从 props 传下来的,如果子组件要感知变化,必须是在 render 里才能感知,因为父组件 re-render 才会给这个组件重新传 props。跑偏了,这是渲染的问题。mobx 都是直接引用,只要确保这个,应该是会取到的...

另外,mobx 最重要的还是依赖收集,你这个 case 跟依赖无关,可以多关心一下 render 函数里的使用。


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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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