我需要bindActionCreators吗?

时间:2018-07-03 07:45:31

标签: javascript reactjs redux react-redux redux-thunk

我在阅读这篇文章,发现他没有使用bindActionCreators附带的redux方法,为什么?

我不需要吗?

这是帖子:https://medium.com/@stowball/a-dummys-guide-to-redux-and-thunk-in-react-d8904a7005d3

为什么不应该使用它呢?我很困惑。

我已经按照他在帖子中所说的做了:

function matchDispatchToProps(dispatch){
    return {
        fetchQp: (url) => dispatch(qpFetchData(url))
    };
}

使用bindActionCreators进行此对比有什么区别?

2 个答案:

答案 0 :(得分:1)

official documentation所述:

  

bindActionCreators的唯一用例是当您想传递一些   操作创建者,直到一个不了解Redux的组件,而您   不想将调度或Redux存储传递给它。

您提到的帖子怎么样-那个人确实将其组件连接到Redux-因此他不必显式使用bindActionCreators

答案 1 :(得分:1)

这些示例都是等效的:

function mapDispatchToProps(dispatch) {
    return {
        fetchQp : (url) => dispatch(qpFetchData(url))
    }
}

function mapDispatchToProps(dispatch) {
    return bindActionCreators({fetchQp : qpFetchData}, dispatch);
}

const mapDispatchToProps = {
    fetchQp : qpFetchData
}

// in all three cases, used as:
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent);

我个人建议使用第三种形式(“对象简写”)。只需将一个充满动作创建者的对象作为第二个参数传递给connect,Redux将在内部自动使用bindActionCreators-没有充分的理由亲自编写单独的mapDispatch函数。