无法将 'touched' 设置为 true
Can't set 'touched' to true
我只是想创建一个自定义 Formik <Field />
。它是一个 <input type = file />
,不透明度 =0,并且取决于 values
我设计我的 <Error />
组件和 <input type = text />
。 values.photo
没问题。问题是 touched 永远不会变成真的,所以我无法显示我的 <Error />
组件。你能解释一下哪里出了问题吗?
https://codesandbox.io/s/purple-violet-qgxr3?file=/src/components/FileInput.js
在您的文件输入组件中添加:
form.setTouched({...form.touched,[field.name]: true });
setTouched 获取字段的对象,field.name
是文件输入名称。
当您通过监听 onChange 事件处理文件输入时。
一旦调用了 onChange 方法,您就可以通过调用将字段标记为 Touched
.markAsTouched() 以便在验证条件时显示错误。
我只是想创建一个自定义 Formik <Field />
。它是一个 <input type = file />
,不透明度 =0,并且取决于 values
我设计我的 <Error />
组件和 <input type = text />
。 values.photo
没问题。问题是 touched 永远不会变成真的,所以我无法显示我的 <Error />
组件。你能解释一下哪里出了问题吗?
https://codesandbox.io/s/purple-violet-qgxr3?file=/src/components/FileInput.js
在您的文件输入组件中添加:
form.setTouched({...form.touched,[field.name]: true });
setTouched 获取字段的对象,field.name
是文件输入名称。
当您通过监听 onChange 事件处理文件输入时。 一旦调用了 onChange 方法,您就可以通过调用将字段标记为 Touched .markAsTouched() 以便在验证条件时显示错误。