У меня есть 4 вложенных компонента, <CompD>
вложено в <CompC>
, вложено в <CompB>
, вложено в <CompA>
.
<CompD>
содержит Redux Form с onSubmit={onSubmit}
с набором входов и кнопкой Сохранить с type="submit"
Фрагмент <CompD>
в настоящее время с кнопкой:
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>
с добавленной новой кнопкой:
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>
)
}
}
Как передать функцию handleSubmit(data)
в <CompA
данные из формы? Есть идеи, как мне это сделать?