2016-11-24 7 views
1

私はログインしたユーザーに関する情報を提供するヘルパークラスを持っています。私は静的メソッドとしてそれを持っていて、いくつかの場所(それは反応しないコンポーネントです)で使用したいと思います。グローバルにリデュース状態の値

クラスモデルでreduxストア値にアクセスするにはどうすればいいですか?

答えて

0

一つの方法は、アクセスするグローバル変数

window.store = createStore(...) 

と、それを使用し、設定することができwindow.store

0

、あなたのアプリケーションでこれを管理することができる場合には、合格するクリーナー(およびよりテスト可能)になりますグローバル変数、スタティックまたはシングルトンを使用するのではなく、依存性注入(DI)を使用しています。あなたはこのようなコンストラクタで、それを渡すことができ、簡単な形式では:

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

あなたはWebPACKのようなバンドラを使用していない場合は、ルーカス・片山の答えはwindow.store = createStore(...)を動作するはずですが、あなたはいずれかを使用している場合、あなたはまた、公開することができますそれを輸出し、必要な場所に輸入することによってあなたのレキシックスストア

//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; 
} 
関連する問題