我的Formik表单带有validateSchema和这样实现的输入字段:
<TextField
error={Boolean(touched.email && errors.email)}
fullWidth
helperText={touched.email && errors.email}
label="Email address"
name="email"
onBlur={handleBlur}
onChange={handleChange}
required
value={values.email}
variant="outlined"
/>
如果用户触摸该字段,它将被验证并且他将看到错误消息。但是,如果他不触摸该字段并尝试提交该表单,验证将阻止该表单,但不会显示错误消息。
是否可以强制每个字段在“提交”或涉及此情况的其他方面进行触摸?
答案 0 :(得分:0)
实际上,您显示错误的条件不是一个好方法,
line three # old 'line one - a long line` is overwritten
line two # `printf "\n"` won't print anything new on this line so the old contents won't be overwritten, while the cursor will be moved to the next line
<cursor> # cursor is left sitting on this line
单击提交按钮后,您可以访问helperText={touched.email && errors.email}
方法,并且在onSubmit
内可以检查表单onSubmit
是否存在(如果存在),请通过本地状态并让组件更新,并以本地状态将error
显示为错误。
使用helperText
并不是一个好方法,特别是在您有多个输入的情况下。无法同时集中所有注意力。