从零开始实施Redux商店
问题描述:
我正在关注Redux tutorial series。其中Dan Abramov展示了如何从头开始创建Redux商店。下面是一段代码从零开始实施Redux商店
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());
我知道,它通过监听器阵列&中的所有元素迭代通过每个元素到箭头功能。
那么怎么办监听器()
答
listeners
是通过监听功能的功能,从而listeners.forEach(listener => listener());
遍历数组,并与listener()
调用它们。
您正在将数字推入“侦听器”数组,并尝试将该数字作为函数调用。 – Dieterg
你能解释一下调度函数中的一行吗? – TA3
你应该使用一个函数来订阅'store'。一旦你调度了一个'action',所有的监听器函数都被调用。 – Dieterg