繁体   English   中英

Redux connect 将不必要的道具“调度”传递给连接的组件

[英]Redux connect passes an unnecessary prop "dispatch" to a connected component

我正在使用 redux connect 将商店连接到 Image 组件。 我只希望在那里(在 Image 组件中)从 Redux 中检索一个道具:“images”。 但我也得到了一个额外的道具:“调度”。

import { connect } from "react-redux";
import Image from "./Image";
import { imagesSelector } from "units/images/selectors";

const mapStateToProps: MapStateToPropsParam = (state) => ({
  images: imagesSelector(state),
});

export default connect(mapStateToProps)(Image);

在 Image 组件中,我得到: { images: [...], dispatch: function(){...}}

问题:如何从传递给我的组件中排除调度?

来自 react-redux 文档:

如果你没有为connect()指定第二个参数,你的组件将默认接收dispatch作为 prop。

如果您不想要这种行为,您可以改为将第二个参数传递给connect函数,这将是mapDispatchToProps参数。

它可以是一个函数,也可以是一个对象。

我们建议始终使用 mapDispatchToProps 的“对象简写”形式,除非您有特定的理由来自定义调度行为。

注意:

  • mapDispatchToProps 对象的每个字段都被假定为一个动作创建者
  • 您的组件将不再作为道具接收调度

文档: https : //react-redux.js.org/using-react-redux/connect-mapdispatch

export default connect(mapStateToProps, null)(Image);

添加 null 作为第二个参数,你就可以开始了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM