从 actionCreator 调度动作

Dispatch action from actionCreator

我研究了 react redux 示例 (shopping cart) 并看到了此操作的实现 addToCart

问题是,dispatchgetState参数从何而来?

export const addToCart = productId => (dispatch, getState) => {
  if (getState().products.byId[productId].inventory > 0) {
    dispatch(addToCartUnsafe(productId))
  }
}

我试图在我的 example 中复制它,但我无法让它工作。

PS: 我可以用 mapDispatchToPropsmy example

中实现

它们来自 thunk 中间件。它允许 redux 动作创建者不仅可以 return 简单对象(类型 属性),还可以使用异步函数。中间件调用这些异步函数并将 dispatch 和 getState 作为参数传递。这反过来又允许您分派多个其他操作,查看当前状态,并且通常可以精确控制异步流。 Thunk 只是支持 redux 操作中的异步内容的众多中间件之一。