在official doc of redux middleware。
它有一个redux applyMiddleware函数的展示案例:
function applyMiddlewareByMonkeypatching(store, middlewares) {
middlewares = middlewares.slice()
middlewares.reverse()
// Transform dispatch function with each middleware.
middlewares.forEach(middleware =>
store.dispatch = middleware(store)
)
}
我无法理解为什么要做slice()
& reverse()
在这里。
// This can make a deep copy of middlewares parameter.
middlewares = middlewares.slice()
但是为什么我们要制作一份深层副本,为什么我们必须反转数组?
这让我很困惑。请帮忙!
答案 0 :(得分:2)
我在这里找到了答案:
它说:
最后,我想修复指定中间件的顺序。它们当前按照调度函数被覆盖的顺序指定。但是,指定操作通过中间件传播的顺序会更自然。
如果我们看到action
中的中间件订单通过订单,则会更加明确。