mobx 修改 store 是异步的?

发布于 2022-09-06 11:21:01 字数 202 浏览 15 评论 0

图片描述

changeTest 方法是把 mobx 中的 test 从0改为1,但是控制台打印出来的依然是0,是什么原因呢?
怎么解决?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嗫嚅 2022-09-13 11:21:01

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文