全局Redux状态值

时间:2016-11-24 06:55:29

标签: reactjs redux

我有一个帮助程序类,它提供有关登录用户的信息。我想把它作为一个静态方法,并在几个地方使用它(不是反应组件)

如何在类模型中访问redux store值?

4 个答案:

答案 0 :(得分:0)

可以设置一种全局变量

window.store = createStore(...)

并使用它,访问window.store

答案 1 :(得分:0)

如果你可以在你的应用程序中管理它,那么使用依赖注入(DI)来传递它将更干净(并且更可测试),而不是使用全局变量,静态或单例。在一个简单的表单中,你可以像这样在构造函数中传递它:

var store = createStore(...);
var app = new AppClass(store);

答案 2 :(得分:0)

如果您没有使用像Webpack这样的捆绑包,Lukas Katayama的回答应该可以window.store = createStore(...),但如果您使用的是,您也可以通过导出并导入到哪里来展示您的redux商店你需要它。

//store.js
export const store = createStore(...);

//other file
import { store } from './store.js';

const someFuncOrClass = (...) => {
    const user = store.getState().userInfo;
}

答案 3 :(得分:0)

看起来像是一个直接的实现。您可以在creatStore(...)的同一文件中为商店创建一个getter。

<强> store.js

import { createStore } from 'redux';

let store = {};

export default function store(...) {
    /*
     * things to do before creating store
     */

    store = createStore(...);
    return store;
}

export function getStore() {
    return store;
}

<强> helper.js

import { getStore } from './store';

export function getUserInfo() {
    const store = getStore();
    const globalState = store.getState();

    return globalState.userInfo;
}