如何访问组件外部的 react-redux 存储
Posted
技术标签:
【中文标题】如何访问组件外部的 react-redux 存储【英文标题】:How to access react-redux store outside of component 【发布时间】:2016-12-25 06:30:31 【问题描述】:我有导出各种实用程序函数以跨组件使用的文件,这些函数需要访问 redux 状态。如何将状态对象导入此文件?
【问题讨论】:
另见:What is the best way to access redux store outside a react component? 【参考方案1】:实用程序应将状态作为参数。
因为您想在组件(视图)中使用该实用程序,您可以将状态存储在您的智能组件(使用connect()
函数)通过mapStateToProps(state)
回调。
那么您可以将此成员传递给您的哑组件。
【讨论】:
每次你想使用它时都必须将成员传递给实用程序,如果实用程序可以访问这些成员这样我们就不会重复代码,那就太好了......跨度> 【参考方案2】:如果您的实用函数不是react
元素,connect
在此处不起作用。
最好的办法是,导入create store,然后使用getState
函数,
import store from 'store/createStore';
const state = store.getState();
【讨论】:
我最终只是将必要的道具从容器组件传递给实用程序函数 它只给出未更新的redux初始数据。【参考方案3】:嗯,这不是一个简单的答案,但是在研究了太久之后,我发现了这些,这是唯一能解释任何事情的 2 篇文章。他们解释了如何在组件之外直接访问 store(如果必须的话),还提到了纯函数/函数式编程理念以及将一堆非组件函数直接连接到 store 的潜在性能问题。就个人而言,我使用 @anoop 并根据需要在单个对象中传递参数。
对于直接连接(以 connect() 的方式从 this.context 获取存储,请参阅讨论 here 特别是 gaearon 在 2015 年 9 月 16 日和 2015 年 9 月 22 日的评论。 似乎可以通过 connect() 实现这种访问
有关函数式编程/纯函数的一点阅读,请参阅讨论here
【讨论】:
以上是关于如何访问组件外部的 react-redux 存储的主要内容,如果未能解决你的问题,请参考以下文章