Я пытаюсь использовать react-hook-form
с моим приложением Ionic React. Я использую эту простую форму:
const Form: React.FC<{ color: string }> = ({ color }) => {
const { handleSubmit, register } = useForm();
const onSubmit = (data: any) => {
console.log(`%c${JSON.stringify(data)}`, `color: ${color}`);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input ref={register} name="name" type="text" />
<input ref={register} name="surname" type="text" />
<input type="submit" />
</form>
);
};
Этот компонент отлично работает, но когда я пытаюсь использовать его внутри компонента IonModal
, обработчик onSubmit
ничего не показывает.
const App: React.FC = () => {
const [showModal, setShowModal] = React.useState(false);
return (
<IonApp>
<Form color="green" />
<IonModal
isOpen={showModal}
onDidDismiss={() => setShowModal(false)}
children={<Form color="red" />}
/>
<IonButton onClick={() => setShowModal(true)}>Open Modal</IonButton>
</IonApp>
);
};
Если я отправлю первый Form
, данные будут правильно напечатаны в консоли, но не если я отправлю второй внутри компонента IonModal
. Вот пример, демонстрирующий такое поведение.