簡體   English   中英

在redux中,當編寫請求調度時,“ next”和“ store.dispatch”之間有什么區別?

[英]In redux when writing thunks for dispatch, what's the difference between “next” and “store.dispatch”?

在視頻課程中: https : //egghead.io/lessons/javascript-redux-dispatching-actions-asynchronously-with-thunks我們學習編寫自己的thunk,以便我們可以在動作創建者中進行異步和多個調用調度。 我大部分都了解這一點。

但是,我對為什么我們在store.dispatch使用store.dispatch而不是next感到困惑:

const thunk = (store) => (next) => (action) =>
  typeof action === 'function' ?
    action(store.dispatch) :
    next(action);

為什么要使用next而不是store.dispatch ,反之亦然? 我知道next前進到下一個中​​間件,但是如果下一個中間件最終也調用了dispatch,我為什么要在next使用store.dispatch

正如您已經指出的, next僅調用鏈中的下一個中間件。 盡管它最終會調用原始的調度函數,但是當您想再次遍歷整個鏈時,不宜使用它。 如果是重音,則要遍歷整個鏈。

因此,如果您要創建一個中間件來完成一些工作,然后繼續進行next工作,請使用next 例如,記錄器執行此操作:它記錄操作,調用next ,然后記錄結果狀態。 要返回遍歷整個鏈的回調,請返回store.dispatch 您似乎不太可能想要從中間件返回next一個,因為您可能會假設您不知道哪個中間件在當前中間件之前和之后出現,因此在中間件鏈之外調用它的結果是不可預測的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM