我遇到了一个问题,尝试提交这个表单时会弹出警告,因为每个字段都被标记为 formik.touched=true - 这个警告应该只在更改名称字段时出现。
我尝试删除/添加 onBlur(一些在线论坛说可能会导致问题),并且在各个地方尝试 console logging。找不到为什么 touched 总是 true!
我遇到了一个问题,尝试提交这个表单时会弹出警告,因为每个字段都被标记为 formik.touched=true - 这个警告应该只在更改名称字段时出现。
我尝试删除/添加 onBlur(一些在线论坛说可能会导致问题),并且在各个地方尝试 console logging。找不到为什么 touched 总是 true!
在提交时,Formik总是将touched设置为true。
https://formik.org/docs/guides/form-submission
如果没有看到您的验证模式和错误信息,您可能需要在传递的值上添加一个 .nullable()
检查。
useEffect(() => {
if (formik.submitCount === 1) {
(data?.questions || []).forEach(({ id }) => {
formik.setFieldTouched(id.toString(), true, true);
});
}
}, [formik.submitCount]);