现在的位置: 首页 > web前端 > 正文

目标组件不在store注入的组件内,但是还需要使用store中存放的数据

2020年02月12日 web前端 ⁄ 共 614字 ⁄ 字号 评论关闭

日前碰到个需求,应用antd的弹窗二次封装了一个弹窗组件,但是该组件是和root同级的,应用react开发的大部分开发者应该都不会改这个根dom的id吧,所以问题也就出现了,我是将store状态管理注入到根root节点中的,那么在弹窗的组件中应该如何获取到store中的数据呢。

想了一个我也不知道low不low的方法,那就是在注入的同时将store导出,这样我在弹窗的组件就可以直接通过引入store.getState()获取到store中的数据了,同样的也可以通过store.dispatch()去派发事件,这个问题就算是解决了,不过又碰到了一个情况,就是我这个弹窗中包含一个列表,列表数据是在store中存储了,并且列表需要翻页功能,也就是说我需要在弹窗组件中去更新store中的数据,但是因为弹窗的组件并没有在store注入的根节点root下,也就意味着即使事件成功派发,store中的值发生改变了,弹窗中的数据也不会更新,所以用到了store的另一个方法subscribe,我们日常使用的connect函数将组件于store进行关联动态渲染其实就是基于subscribe这个方法的,所以解决代码如下:

这样在render方法中直接使用state的数据就可以了。 

以上就上有关目标组件不在store注入的组件内,但是还需要使用store中存放的数据的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。

抱歉!评论已关闭.