dispatch
和next
之间的区别是什么?
export default function sampleMiddleware(store) {
return next => action => {
store.dispatch(action)
next(action)
}
}
答案 0 :(得分:21)
Dispatch启动新操作,它将通过完整的中间件链。
下一步 - 将当前操作发送到链中的下一个中间件。
答案 1 :(得分:4)
createStore(reducer,
applyMiddleware(
middlewareA,
middlewareB,
middlewareC
)
);
在middlewareB中调用next(action)将导致该操作 传递给middlewareC然后是reducer。呼叫派遣(行动) 在middlewareB中将导致动作传递给middlewareA, 然后是middlewareB,然后是middlewareC,最后是reducer, 将执行返回到middlewareB。呼叫派遣() 多次是一种常见且有效的做法。 next()也可以 不止一次调用,但不建议任何动作 传递给next()将跳过当前的中间件(for 例如,可能会跳过日志记录中间件。)