dispatch和bindActionCreators之间有什么区别?

时间:2016-12-27 09:33:40

标签: reactjs react-redux

  

如果我们使用调度连接到操作,有两种方法: -

1. this.props.dispatch(requestEmployees());

2. const mapDispatchToProps = (dispatch) => ({
      requestEmployees: () => dispatch(requestEmployees())

    });
  

如果我们在bindActionCreators的帮助下做同样的话,那么我们的   代码我们将: -

function matchDispatchToProps(dispatch) {
        return bindActionCreators({ editLabResult: requestEmployees}, dispatch);
    }
  

现在我的问题是,我应该使用发送或   的 bindActionCreators ?他们之间有什么区别?

1 个答案:

答案 0 :(得分:31)

实际上它是一回事。

的结果
bindActionCreators({ editLabResult: requestEmployees}, dispatch);

是您手动创建的内容:

requestEmployees: () => dispatch(requestEmployees())

根据redux bindActionCreators文档:

  

将值为动作创建者的对象转换为对象   相同的键,但每个动作创建者都包含在发送中   打电话让他们可以直接调用。

bindActionCreators({ editLabResult: requestEmployees, anotherAction, etc... }, dispatch);

您可以将对象传递给connect方法,而不是使用bindActionCreators,它会为您执行换行:

connect(mapStateToProps, { editLabResult: requestEmployees, anotherAction, etc... })