reactjs在使用redux的时候,子组件触发action,父组件也会更新?

发布于 2022-09-06 03:22:33 字数 196 浏览 27 评论 0

例如 在A组件下面有一个B组件,当我在B组件 dispatch一个action的时候,state发生改变,结果A组件更新,然后B组件更新。这样正常么?能不能只更新B组件,而父组件不更新?

第二A组件 对应reduer 是A.js C组件对应C.js,A C 同级,但是 当在 B组件dispatch action的时候A C里面的reducer都会触发一次,

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

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

发布评论

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

评论(4

蝶…霜飞 2022-09-13 03:22:33

一般不建议使用redux,除非你的工程很大很大,
正常情况,订阅,发送的模式足以满足不存在层级关系的组件间的相互沟通

许你一世情深 2022-09-13 03:22:33

1.可以只更新B组件,将B组件需要的 state 和B组件 connect,触发 action 后就只会触发对应绑定的B组件;如果A和B组件有相同 state 而只想更新B,要么对A和B都 connect,然后再对A组件添加 shouldComponentUpdate 进行判断,要么还是 connect A组件,只要组件嵌套不会太多,性能不会影响很多。

2.action调用后,按照 redux 的思想,state 必须是全新的,所以 store 必须调用每一个 reducer 来获取新的state值来组成新的 state 对象,所以这很正常;而且,action 相关的数据也需要发送给每一个reducer,以此保证所有相关数据的正常更新。

聽兲甴掵 2022-09-13 03:22:33

所有被connect的组件都会更新,所以有重复更新渲染的问题,不过应该没有什么问题的,redux就这样的,dispatch action的时候,所有的reducers都会执行。而父组件不更新,使用setState?使用mobx?

℉絮湮 2022-09-13 03:22:33

可以使用reselect,只有在状态发生变化的时候才发生计算过程.

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