Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 全局重排状态值_Reactjs_Redux - Fatal编程技术网

Reactjs 全局重排状态值

Reactjs 全局重排状态值,reactjs,redux,Reactjs,Redux,我有一个助手类,提供有关登录用户的信息。我想把它作为一个静态方法,并在几个地方使用它(不是react组件) 如何在类模型中访问redux存储值?一种方法是设置一个全局变量 window.store = createStore(...) 并使用它,访问window.store如果您可以在应用程序中管理它,那么使用依赖项注入(DI)传递它将比使用全局变量、静态变量或单例变量更干净(并且更易于测试)。以一种简单的形式,您可以像这样将其传递到构造函数中: var store = createStore

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


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

一种方法是设置一个全局变量

window.store = createStore(...)

并使用它,访问window.store

如果您可以在应用程序中管理它,那么使用依赖项注入(DI)传递它将比使用全局变量、静态变量或单例变量更干净(并且更易于测试)。以一种简单的形式,您可以像这样将其传递到构造函数中:

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

如果您没有使用像Webpack这样的捆绑程序,Lukas Katayama的回答应该有效
window.store=createStore(…)
,但是如果您使用的是一个,您还可以通过导出redux存储并在需要的地方导入来公开redux存储

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

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

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

看起来像是一个直接的实现。您可以为存储创建一个getter,该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;
}
import { getStore } from './store';

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

    return globalState.userInfo;
}
helper.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;
}
import { getStore } from './store';

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

    return globalState.userInfo;
}