如何从自定义JavaScript访问redux商店

时间:2017-07-07 10:41:17

标签: javascript redux

我正在尝试在redux应用程序中实现外部API库。 我是redux中的新手,所以我不确切知道它是如何工作的。

在我使用API​​库的javascript中,我不想从容器访问信息(如果用户已经登录,则为用户firstanme)。

在阅读了一些文档之后,我尝试在我的js文件中导入商店,以获取用户的状态,但是我无法获得所需的信息。

这是我尝试过的代码:

import configureStore from '../store/configureStore';

const store = configureStore();
const state = store.getState();

我在状态中获得了很多信息,但不是我需要的信息。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

首先看起来configureStore每次调用时都会创建新商店。但是你需要你的组件将使用和填充的那个store。所以你需要以某种方式访问​​你传递Provider的商店。

然后,因为商店状态是"更改"你不能只读一次。因此,您的用户数据最初可能为空,但稍后可用。

在这种情况下,你可以使它成为一个承诺

const once = selector => available => new Promise(resolve => {
   store.subscribe(() => {
      const value = selector(value)
      if(available(value)) resolve(value)
   })
})

使用

 const user = once(state => state.user)(user => user && user.fullName)

 user.then(user => console.log(`User name is ${user.fullName}`)

或者,如果您的数据在应用程序生命周期中可能会多次更改,您可能希望用表示更改数据的内容(可观察的)来包装它。 RX examle