我正在尝试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组件内提交第二个,则不会。
这是一个显示此行为的示例。