this.props.dispatch不是一个函数

时间:2016-11-09 09:45:05

标签: reactjs redux react-redux

当我尝试使用bindActionCreators

时,我无法调用调度功能

调度功能不起作用

@connect(state => ({oPurchaseDetails: state.cart.cartItems}), dispatch => bindActionCreators({updateItem}, dispatch))

如果我不使用bindActionCreators,则updateItem函数不起作用。

updateItem功能不起作用:

@connect(state => ({oPurchaseDetails: state.cart.cartItems}), dispatch => ({updateItem, dispatch}))

2 个答案:

答案 0 :(得分:5)

connect仅在提供this.props.dispatch功能时自动插入mapDispatch。由于您使用的是自己的mapDispatch,因此您有责任将其包含在返回值中。

有关详细信息,请参阅http://redux.js.org/docs/faq/ReactRedux.html#react-props-dispatch

答案 1 :(得分:0)

您需要提供一个返回值以引入dispatch函数。

类似的东西:

@connect(
    // this provides the dispatch function
    (state) => {return {
        oPurchaseDetails: state.cart.cartItems
    }},
    dispatch => bindActionCreators({updateItem}, dispatch)
)

我希望有帮助