我研究了react redux示例(购物车(,并看到了操作的实现addToCart。
问题是,dispatch和getState参数来自哪里?
export const addToCart = productId => (dispatch, getState) => {
if (getState().products.byId[productId].inventory > 0) {
dispatch(addToCartUnsafe(productId))
}
}
我试着在我的例子中复制它,但我无法让它发挥作用。
PS:我可以在我的示例中使用mapDispatchToProps
它们来自thunk中间件。它允许redux操作创建者不仅返回简单对象(带有类型属性(,还可以返回异步函数。中间件调用这些异步函数,并将dispatch和getState作为参数传递。这反过来又允许您调度多个其他操作,查看当前状态,并通常对异步流进行精确控制。Thunk只是众多支持redux操作中异步内容的中间件之一。