我有一个父组件,我想将其从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);
答案 0 :(得分:2)
您正在导出子级而不是父级上的连接。因此,父母永远不会渲染。您可以改为连接父级
export default connect(
null,
mapDispatchToProps,
)(Parent);
答案 1 :(得分:-1)
只需将您的组件转换为类,即可使用。我从来没有像您那样在无状态组件中看到方法设置,也没有看到redux connect。
然后通过以下操作:
<Child
storeAction={this.props. storeAction}
/>
最佳做法是将redux HOC(mapStateToProps和mapDispatchToProps)设置为类(而非无状态功能)的顶级组件(容器)。 如果您不想使用类,请使用钩子,但是您的React连接将不兼容且无用,因为钩子已包含reducer。