使用 React Final Form 时,有没有办法在不丢失 submitSucceeded 状态的情况下重置表单。我想在表单上显示一条成功消息,但我也想在成功提交后清除它。
问问题
373 次
2 回答
2
reset()
清除所有状态。您可以:
a) 注意何时submitSucceeded
变为true
并在本地保存该状态setState()
,或
b)手动清除每个字段,例如:
form.batch(() => {
form.change('firstField', '')
form.change('secondField', '')
form.change('thirdField', '')
// ...
})
两者都不是令人难以置信的优雅,但是......
于 2018-09-10T16:52:55.560 回答
0
如果您不想手动重置每个字段,您可以遍历所有表单发布的值并单独重置:
const submitForm = async (values, form) => {
// Do something on form submit here
// Reset form fields, note in a real world scenario
// this would be inside a success callback
Object.keys(values).forEach(key => {
form.change(key, undefined);
form.resetFieldState(key);
});
};
于 2020-01-30T14:58:54.447 回答