在我的 redux 项目中,我想在每个动作调度中检查一些东西(例如网络连接)。我是否应该使用一个接受所有类型的动作(没有类型检查)的减速器来实现,如下所示
export default (state = defaultState) => ({
...state,
neworkStatus: navigator.onLine
})
或使用中间件。
const NetworkMiddleware = store => next => (action) => {
const result = next(action)
const state = store.getState()
if (navigator.onLine && !state.NetworkDetector.networkStatus) next({ type: 'NETWORK_SUCCESS' })
if (!navigator.onLine && state.NetworkDetector.networkStatus) next({ type: 'NETWORK_ERROR' })
return result
}
export default NetworkMiddleware;
这两种实现有什么区别