2017-06-03 43 views
0

official doc of redux middleware为什么我们在redux applyMiddleware函数中做slice()和reverse()?

它具有终极版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() 

但是为什么我们要做一个深层复制,以及为什么我们必须反转这个数组?

这让我很困惑。请帮忙!

回答

2

我找到了答案在这里:

Redux: The Middleware Chain

它说:

最后,我想以修复被指定中间件的顺序。它们当前按调度功能被覆盖的顺序指定。但是,指定动作通过中间件传播的顺序会更自然。

如果我们看到中间件订单action通过订单更清楚。

相关问题