2016-11-24 9 views
1

Ich habe eine Hilfsklasse, die Informationen über den angemeldeten Benutzer bereitstellt. Ich möchte es als eine statische Methode haben und es an mehreren Stellen verwenden (die nicht reagieren Komponenten sind)Redux-Statuswert global

Wie Zugriff auf den Redox-Speicher-Wert in einem Klassenmodell erhalten?

Antwort

0

Eine Möglichkeit könnte eine globale Variable

window.store = createStore(...) 

und es eingestellt werden, verwenden, den Zugriff auf window.store

0

Wenn Sie dies in Ihrer Anwendung verwalten können, wäre es sauberer (und mehr prüfbar) passieren Es ist mit Abhängigkeitsinjektion (DI) im Gegensatz zur Verwendung einer globalen Variablen, statisch oder Singleton. In einer einfachen Form könnten Sie geben es nur im Konstruktor wie folgt aus:

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

Wenn Sie nicht ein Bündler wie Webpack, Lukas Katayamas Antwort sollte window.store = createStore(...) arbeiten verwenden, aber wenn Sie eine verwenden, können Sie auch aussetzen Ihr redux Geschäft, indem Sie es exportieren und importieren, wo Sie es brauchen.

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

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

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

Sieht wie eine direkte Implementierung aus. Sie können einen Getter zum Speichern in der gleichen Datei erstellen, in der Sie 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; 
}