2016-11-24 85 views
1

我有一個輔助類provies有關登錄的用戶信息。我想它作爲一個靜態方法,並在幾個地方(未反應的組分)Redux的狀態值全球

如何獲得在一類模型訪問了Redux儲值使用它呢?

回答

0

的一種方式,可以設置一個全局變量

window.store = createStore(...) 

,並使用它,訪問window.store

0

如果你能在你的應用程序管理這將是清潔的(和更容易測試)來傳遞它周圍的依賴注入(DI),而不是使用一個全局變量,靜態或單例。在一個簡單的形式,你可以只通過它的構造是這樣的:如果你不使用類似的WebPack一個捆綁

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

,盧卡斯片山的回答應該工作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

看起來像一個直截了當的實施。您可以在同一文件中,你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; 
}