如何通过propDispatchToProps和从父组件将道具传递到组件?

时间:2019-07-03 17:23:22

标签: reactjs

我有一个父组件,我想将其从redux和一些静态道具传递到子组件操作

当我这样做时,我的子组件会收到动作,还有一些默认的道具,例如历史记录,但是func并没有传递下来

有没有办法从商店和父组件中传递这两个道具?

export const Parent = () => {
  const onFunc= e => {
    e.preventDefault();
    console.log(34234234);
  };
  return (
    <Child
      func={onFunc}
    />
  );
};

const mapDispatchToProps = dispatch => ({
  storeAction: data => dispatch(storeAction(data))
});

export default connect(
  null,
  mapDispatchToProps,
)(Child);

2 个答案:

答案 0 :(得分:2)

您正在导出子级而不是父级上的连接。因此,父母永远不会渲染。您可以改为连接父级

export default connect(
  null,
  mapDispatchToProps,
)(Parent);

答案 1 :(得分:-1)

只需将您的组件转换为类,即可使用。我从来没有像您那样在无状态组件中看到方法设置,也没有看到redux connect。

然后通过以下操作:

<Child
  storeAction={this.props. storeAction}
/>

最佳做法是将redux HOC(mapStateToProps和mapDispatchToProps)设置为类(而非无状态功能)的顶级组件(容器)。 如果您不想使用类,请使用钩子,但是您的React连接将不兼容且无用,因为钩子已包含reducer。