2016-11-24 5 views
1

У меня есть вспомогательный класс, который предоставляет информацию о зарегистрированном пользователе. Я хотел бы использовать его как статический метод и использовать его в нескольких местах (которые не реагируют на компоненты)Значение состояния Redux глобально

Как получить доступ к значению хранилища редукций в модели класса?

ответ

0

Одним из способов может быть установлена ​​глобальная переменная

window.store = createStore(...) 

и использовать его, доступ к window.store

0

Если вы можете справиться с этим в вашем приложении было бы чище (и более проверяемым), чтобы пройти это вокруг с инъекцией зависимостей (DI), а не с использованием глобальной переменной, статической или одиночной. В простой форме вы могли бы просто передать его в конструктор, как это:

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

Если вы не используете Bundler как Webpack, ответ Lukas Катаяма должен работать window.store = createStore(...), но если вы используете один, вы можете также разоблачить ваш магазин redux, экспортируя его и импортируя, где вам это нужно.

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

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

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

Похож на реализацию в прямом направлении. Вы можете создать getter для хранения в том же файле, где вы находитесь creatStore(...).

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; 
} 
Смежные вопросы