首页 > 解决方案 > mapDispatchToProps 和 {action} 有什么区别

问题描述

所以我一直想知道有什么区别

connect(mapStateToProps, mapDispatchToProps)(ComponentName)

connect(mapStateToProps, {action})(ComponentName)

我一直在使用第二个版本,但我不知道这是否是一个好习惯。任何反馈都会很有用,因为我真的想知道是否有任何区别,如果没有,为什么每个人都使用 mapDispatchToProps() 而不是仅仅导出像 {action} 这样的动作?我猜如果你有很多动作,你会使用 mapDispatchToProps 但如果你只有 3-4 个,为什么不像 {action} 那样在连接中导出它们?

标签: javascriptreactjsreduxreact-redux

解决方案


这不是一个坏习惯。它实际上是在react-redux文档本身中推荐的。

因为这很常见,所以connect()支持mapDispatchToProps参数的“对象速记”形式:如果你传递一个充满动作创建者的对象而不是一个函数,connect 将bindActionCreators在内部自动调用你。

我们建议始终使用 的“对象速记”形式mapDispatchToProps,除非您有特定的原因来自定义调度行为。

您可以在文档的此页面中找到所有相关信息

我希望这能消除你的疑问。


推荐阅读