mobx 修改 store 是异步的?
changeTest 方法是把 mobx 中的 test 从0改为1,但是控制台打印出来的依然是0,是什么原因呢?
怎么解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
changeTest 方法是把 mobx 中的 test 从0改为1,但是控制台打印出来的依然是0,是什么原因呢?
怎么解决?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
这取决于你的 changeTest 是同步还是异步,如果这个方法同步更改,那取到的 test 就是修改后的,因为访问的都是同一个引用,不存在其他问题。
不过你这里的 test 是
this.props.test
,如果是从父组件传下来的,还涉及到父组件的 render 问题,因为改值后,test 是从 props 传下来的,如果子组件要感知变化,必须是在 render 里才能感知,因为父组件 re-render 才会给这个组件重新传 props。跑偏了,这是渲染的问题。mobx 都是直接引用,只要确保这个,应该是会取到的...另外,mobx 最重要的还是依赖收集,你这个 case 跟依赖无关,可以多关心一下 render 函数里的使用。