从 actionCreator 调度动作
Dispatch action from actionCreator
我研究了 react redux 示例 (shopping cart) 并看到了此操作的实现 addToCart。
问题是,dispatch和getState参数从何而来?
export const addToCart = productId => (dispatch, getState) => {
if (getState().products.byId[productId].inventory > 0) {
dispatch(addToCartUnsafe(productId))
}
}
我试图在我的 example 中复制它,但我无法让它工作。
PS:
我可以用 mapDispatchToProps 在 my example
中实现
它们来自 thunk 中间件。它允许 redux 动作创建者不仅可以 return 简单对象(类型 属性),还可以使用异步函数。中间件调用这些异步函数并将 dispatch 和 getState 作为参数传递。这反过来又允许您分派多个其他操作,查看当前状态,并且通常可以精确控制异步流。 Thunk 只是支持 redux 操作中的异步内容的众多中间件之一。
我研究了 react redux 示例 (shopping cart) 并看到了此操作的实现 addToCart。
问题是,dispatch和getState参数从何而来?
export const addToCart = productId => (dispatch, getState) => {
if (getState().products.byId[productId].inventory > 0) {
dispatch(addToCartUnsafe(productId))
}
}
我试图在我的 example 中复制它,但我无法让它工作。
PS: 我可以用 mapDispatchToProps 在 my example
中实现它们来自 thunk 中间件。它允许 redux 动作创建者不仅可以 return 简单对象(类型 属性),还可以使用异步函数。中间件调用这些异步函数并将 dispatch 和 getState 作为参数传递。这反过来又允许您分派多个其他操作,查看当前状态,并且通常可以精确控制异步流。 Thunk 只是支持 redux 操作中的异步内容的众多中间件之一。