因此,我正在将formik用于更新/编辑表单,并将初始初始值作为当前文本。当我提交并调用resetForm时,新文本将替换为过去的文本。
<Formik
initialValues={{ text: existingPost.text }}
onSubmit={(values, actions) => {
exampleSubmitHanlder(values);
actions.resetForm();
}}>
我有类似的东西,并且也尝试过actions.resetForm({text: ''})
,但是效果不佳
答案 0 :(得分:0)
resetForm
会将您的表单值重置为传递到Formik
组件的初始值。如果您的初始值不为空,则为了清除提交时的值,可以使用action.setValues({ text: '' })
。
答案 1 :(得分:0)
我也需要这个。 resetForm
选项将不起作用,因为这将始终使用原始 initialValues
。
Formik 提供了一个 enableReinitialize
道具:
启用重新初始化?:布尔值
默认值为 false
。控制 Formik 是否应重置表单,如果
初始值更改(使用深度相等)。
如果提交后 initialValues
更新为当前状态,则此选项应该对您有用。
示例:
<Formik
enableReinitialize
initialValues={{ text: existingPost.text }}
onSubmit={(values, actions) => {
// updates existingPost prop
exampleSubmitHanlder(values);
}}>