我在阅读这篇文章,发现他没有使用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
进行此对比有什么区别?
答案 0 :(得分:1)
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
函数。