Redux中间件中dispatch和next之间有什么区别?
export default function sampleMiddleware(store) {
return next => action => {
store.dispatch(action)
next(action)
}
}Run Code Online (Sandbox Code Playgroud)
小智 29
Dispatch启动新操作,并且它通过完整的中间件链.
下一步 - 将当前操作发送到链中的下一个中间件.
createStore(reducer,
applyMiddleware(
middlewareA,
middlewareB,
middlewareC
)
);
Run Code Online (Sandbox Code Playgroud)
在MiddlewareB中调用next(action)将导致该动作先传递给MiddlewareC,然后传递给reducer。在中间件B中调用dispatch(action)将导致该操作先传递给中间件A,然后传递给中间件B,然后传递给中间件C,最后传递给Reducer,然后将执行返回给中间件B。多次调用dispatch()是一种常见且有效的做法。next()也可以被多次调用,但是不建议这样做,因为传递给next()的任何操作都将跳过当前中间件之前的中间件(例如,可能会跳过日志记录中间件)。
| 归档时间: |
|
| 查看次数: |
3838 次 |
| 最近记录: |