Если вы не хотите перемещать свои компоненты, вы можете удалить обработчик состояния из infoForm.js
переместить этот код в app.js и изменить имя обработчика на «handleChangeForm» (необязательное имя)
const [values, setValues] = React.useState({
name: '',
email: '',
months: ''
});
const handleChangeForm = name => event => {
setValues({ ...values, [name]: event.target.value });
};
тогда вы можете использовать обработчик и значения в infoForm как свойства:
<Form values={values} handleChangeForm={handleChangeForm}/>
также вам нужно отправить компоненту кнопки значения как свойства
Внутри компонента формы вы должны деструктурировать реквизит следующим образом:
const { values, handleChangeForm } = props;
return (
<form noValidate autoComplete="off"> .....
Пример события onChange внутри формы
onChange={handleChangeForm("name")}
Наконец, у вас есть значения, связанные сваш компонент компонента, и вы можете использовать такую функцию
const onClickBtn = () => {
console.log(props.values);
};
при нажатии кнопки
<Button
variant="contained"
color="primary"
disabled={!props.isEnabled}
type="submit"
onClick={onClickBtn}
>
Submit
</Button>