【发布时间】:2019-03-07 18:37:59
【问题描述】:
我有 4 个嵌套组件,<CompD> 嵌套在 <CompC> 中,<CompB> 嵌套在 <CompB> 中,<CompA> 中嵌套。
<CompD> 包含一个带有 onSubmit={onSubmit} 的 Redux 表单,带有一堆输入和一个带有 type="submit" 的保存按钮
<CompD> 的 sn-p 当前带有按钮:
const propTypes = {
firstName: PropTypes.string,
secondName: PropTypes.string
};
const defaultTypes = {
firstName = " ",
secondName = " "
};
const PollForm = ({
firstName,
secondName
}) => (
<Form onSubmit={onSubmit}>
.
.
<button type="submit">
'Save'
</button>
</Form>
);
PollForm.propTypes = propTypes;
PollForm.defaultProps = defaultProps;
export default PollForm;
我想将此按钮移至<CompA>,因此<CompA> 中的按钮的行为方式与<CompD> 中的按钮完全相同并提交表单。
<CompA> 的 sn-p 添加了一个新按钮:
const propTypes = {
onSubmit: PropTypes.func, ...
};
const defaultTypes = {
onSubmit: () = {}, ...
};
class Config extends Component {
constructor(props) {
super(props);
this.handleSubmit = this.handleSubmit.bind(this); ...
}
handleSubmit(data) {
this.props.onSubmit(data);
}
render() {
const {
} = this.props;
return (
.
.
<button onClick={onSubmit}>
'Save'
</button>
)
}
}
如何在<CompA 中传递handleSubmit(data) 函数中的表单数据
有什么想法可以做到这一点吗?
【问题讨论】:
-
您想获取 CompA 中的按钮并将表单保留在 CompD 中吗?
-
您的意思是点击
<CompA>中的按钮,然后以某种方式触发<CompD>中的Form 的onSubmit事件,对吧? -
@NguyễnThanhTú 是的,这是正确的
-
@IvanBurnaev 是的
标签: javascript reactjs forms redux components