2016-08-17 15 views
0

Redux tutorial seriesに従っています。 Dan AbramovはReduxストアをゼロから作成する方法を示しています。ここでは、コードRedux Storeをゼロから実装する

const createStore = (reducer) => { 
let state; 
let listeners = []; 

const getState =() => state; 

const dispatch = (action) => { 
    state = reducer(state, action); 
    listeners.forEach(listener => listener()); 
}; 

const subscribe = (listener) => { 
    listeners.push(listener); 
    return() => { 
    listeners = listeners.filter(l => l !== listener()); 
    }; 
}; 

dispatch({}); 

return {getState, dispatch, subscribe}; 
} 

のその部分だディスパッチ関数内の次の行は、私はそれがリスナーの配列&パス内のすべての要素を、各要素を反復することを知って、私は混乱しています何

listeners.forEach(listener => listener()); 

です矢印機能に

しかし、これは(リスナーをするのか)

+1

あなたは 'listers'配列に数値を送りますが、その数値を関数として呼び出そうとします。 – Dieterg

+0

ディスパッチ機能内の行について説明できますか? – TA3

+1

関数を使って 'store'を購読する必要があります。 'action'をディスパッチすると、すべてのリスナー関数が呼び出されます。 – Dieterg

答えて

0

listenersは、リスナー関数による機能のでlisteners.forEach(listener => listener());繰り返し処理の配列であり、listener()でそれらを起動します。

関連する問題