在formik中禁用提交时自动重置表单,可以通过设置enableReinitialize
属性为false
来实现。enableReinitialize
属性用于控制当表单的initialValues
属性发生变化时是否重新初始化表单。
当enableReinitialize
属性设置为false
时,表单在提交后不会自动重置为初始状态,而是保留用户输入的值。这样可以避免用户在提交后需要重新填写表单的情况。
以下是一个示例代码:
import { Formik, Form, Field } from 'formik';
const initialValues = {
// 初始表单字段值
// ...
};
const App = () => {
const handleSubmit = (values, { resetForm }) => {
// 处理表单提交逻辑
// ...
// 手动重置表单
resetForm();
};
return (
<Formik
initialValues={initialValues}
onSubmit={handleSubmit}
enableReinitialize={false} // 禁用自动重置
>
<Form>
{/* 表单字段 */}
{/* ... */}
<button type="submit">提交</button>
</Form>
</Formik>
);
};
export default App;
在上述示例中,enableReinitialize
属性被设置为false
,这样在提交表单后,resetForm
函数将不会自动将表单重置为初始状态。你可以在handleSubmit
函数中手动调用resetForm
函数来重置表单。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。
领取专属 10元无门槛券
手把手带您无忧上云