全局 Redux 状态值

IT技术 reactjs redux
2021-05-16 01:26:32

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

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

4个回答

如果您可以在您的应用程序中管理它,那么与使用全局变量、静态或单例相比,通过依赖注入 (DI) 传递它会更清晰(并且更易于测试)。在一个简单的形式中,您可以像这样在构造函数中传递它:

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

如果您没有使用像 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;
}

一种方法可以设置一个全局变量

window.store = createStore(...)

并使用它,访问 window.store

看起来像一个直接的实现。您可以在与creatStore(...).

商店.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;
}