乐闻世界logo
搜索文章和话题

Formik 如何重置表单?

7 个月前提问
5 个月前修改
浏览次数34

1个答案

1

Formik 是一个流行的 React 库,用于处理表单的状态管理和验证。要在 Formik 中重置表单,您可以使用 Formik 的 resetForm 函数。resetForm 是 Formik 表单的帮助方法之一,通常在 Formik 的 Formik 组件或者 useFormik 钩子中是可用的。

以下是如何使用 resetForm 方法来重置表单的几种情况:

使用 Formik 组件

如果您正在使用 Formik 组件,可以在 Formikrender 属性或 children 函数中通过 Formik 的渲染属性访问 resetForm 方法。

jsx
import { Formik, Form, Field } from 'formik'; const MyForm = () => ( <Formik initialValues={{ name: '' }} onSubmit={(values, actions) => { // 提交逻辑 actions.resetForm(); }} > {({ resetForm }) => ( <Form> <Field name="name" type="text" /> <button type="button" onClick={() => resetForm()}> 重置表单 </button> <button type="submit">提交</button> </Form> )} </Formik> );

使用 useFormik 钩子

如果您正在使用 useFormik 钩子,可以直接从返回的 Formik 实例中获取 resetForm 方法。

jsx
import React from 'react'; import { useFormik } from 'formik'; const MyForm = () => { const formik = useFormik({ initialValues: { name: '' }, onSubmit: values => { // 提交逻辑 formik.resetForm(); }, }); return ( <form onSubmit={formik.handleSubmit}> <input name="name" type="text" onChange={formik.handleChange} value={formik.values.name} /> <button type="button" onClick={() => formik.resetForm()}> 重置表单 </button> <button type="submit">提交</button> </form> ); };

重置为特定的值

resetForm 方法还接受一个可选参数,如果您希望将表单重置为特定的值,而不是初始值,可以这样做:

jsx
resetForm({ values: { name: '特定值' } });

使用这种方式,当您触发 resetForm 方法时,表单的值将重置为您提供的值。

以上代码假定您已经安装并导入了 Formik 相关模块,并设置了适当的表单初始值和提交处理逻辑。在实际开发中,请根据具体情况调整这些逻辑。

2024年6月29日 12:07 回复

你的答案