【发布时间】:2016-12-25 06:30:31
【问题描述】:
我有导出各种实用程序函数以跨组件使用的文件,这些函数需要访问 redux 状态。如何将状态对象导入此文件?
【问题讨论】:
标签: javascript reactjs redux store
我有导出各种实用程序函数以跨组件使用的文件,这些函数需要访问 redux 状态。如何将状态对象导入此文件?
【问题讨论】:
标签: javascript reactjs redux store
实用程序应将状态作为参数。
因为您想在组件(视图)中使用该实用程序,您可以将状态存储在您的智能组件(使用connect()函数)通过mapStateToProps(state)回调。
那么您可以将此成员传递给您的哑组件。
【讨论】:
如果您的实用函数不是react 元素,connect 在此处不起作用。
最好的办法是,导入create store,然后使用getState函数,
import store from 'store/createStore';
const state = store.getState();
【讨论】:
嗯,这不是一个简单的答案,但是在研究了太久之后,我发现了这些,这是唯一能解释任何事情的 2 篇文章。他们解释了如何在组件之外直接访问 store(如果必须的话),还提到了纯函数/函数式编程理念以及将一堆非组件函数直接连接到 store 的潜在性能问题。就个人而言,我使用 @anoop 并根据需要在单个对象中传递参数。
对于直接连接(以 connect() 的方式从 this.context 获取存储,请参阅讨论 here 特别是 gaearon 在 2015 年 9 月 16 日和 2015 年 9 月 22 日的评论。 似乎可以通过 connect() 实现这种访问
有关函数式编程/纯函数的一点阅读,请参阅讨论here
【讨论】: