【问题标题】:How to access react-redux store outside of component如何访问组件外部的 react-redux 存储
【发布时间】:2016-12-25 06:30:31
【问题描述】:

我有导出各种实用程序函数以跨组件使用的文件,这些函数需要访问 redux 状态。如何将状态对象导入此文件?

【问题讨论】:

标签: javascript reactjs redux store


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 2019-11-10
    • 2017-12-26
    • 2017-11-20
    • 1970-01-01
    • 2019-02-21
    • 2019-11-04
    相关资源
    最近更新 更多