Javascript 在redux中,当编写Thunk以发送时,什么';这两者之间的区别是什么;“下一步”;及;“存储、发送”吗;?
在视频课程中:我们学习编写自己的Thunk,以便在action creator中进行异步和多个调度调用。我大部分都理解这一点 但是,我不明白为什么我们在thunk中使用了Javascript 在redux中,当编写Thunk以发送时,什么';这两者之间的区别是什么;“下一步”;及;“存储、发送”吗;?,javascript,reactjs,redux,redux-thunk,Javascript,Reactjs,Redux,Redux Thunk,在视频课程中:我们学习编写自己的Thunk,以便在action creator中进行异步和多个调度调用。我大部分都理解这一点 但是,我不明白为什么我们在thunk中使用了store.dispatch而不是next: const thunk = (store) => (next) => (action) => typeof action === 'function' ? action(store.dispatch) : next(action); 为什么要使
store.dispatch
而不是next
:
const thunk = (store) => (next) => (action) =>
typeof action === 'function' ?
action(store.dispatch) :
next(action);
为什么要使用
next
而不是store.dispatch
,反之亦然?我知道next
会发展到下一个中间件,但如果下一个中间件最终也会调用dispatch,为什么我会使用store.dispatch
overnext
?正如您已经指出的,next
只调用链中的下一个中间件。虽然它最终会调用原始的分派函数,但当您想再次遍历整个链时,使用它是不合适的。对于thunks,您希望遍历整个链
因此,如果您正在创建一个中间件,您希望在其中执行一些工作,然后继续执行整个过程,请使用next
。例如,记录器执行以下操作:它记录操作,调用next
,然后记录结果状态。要返回将遍历整个链的回调,请返回store.dispatch
。您似乎不太可能希望从中间件返回next
,因为您可能会假设您不知道哪些中间件在当前中间件之前和之后,因此在中间件链之外调用它的结果是不可预测的