我正在尝试在redux应用程序中实现外部API库。 我是redux中的新手,所以我不确切知道它是如何工作的。
在我使用API库的javascript中,我不想从容器访问信息(如果用户已经登录,则为用户firstanme)。
在阅读了一些文档之后,我尝试在我的js文件中导入商店,以获取用户的状态,但是我无法获得所需的信息。
这是我尝试过的代码:
import configureStore from '../store/configureStore';
const store = configureStore();
const state = store.getState();
我在状态中获得了很多信息,但不是我需要的信息。有什么帮助吗?
答案 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