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 函数里的使用。
添加回答
举报
0/150
提交
取消
