[英]Yup schema email reset password field validations with formik
我正在为 forms 使用甲酸,所以这是我的 HTML
<form onSubmit={handleSubmit} className={css.loginForm}>
<Input
variant='standard'
textAlign='center'
placeholder='Password'
id='password'
name='password'
type='password'
value={values.password}
onChange={handleChange}
onBlur={handleBlur}
autoFocus
error={errors.password && touched.password}
/>
<Input
variant='standard'
textAlign='center'
placeholder='Repeat Password'
id='repeatPassword'
name='repeatPassword'
type='password'
value={values.repeatPassword}
onChange={handleChange}
onBlur={handleBlur}
autoFocus
error={errors.repeatPassword && touched.repeatPassword}
/>
{errors.repeatPassword ? (
<div>{errors.repeatPassword}</div>
) : null}
<Button
variant='primary'
theme='light'
type='submit'
disabled={!!errors.password || !!errors.repeatPassword}>
<Typography variant='h1'>Reset Password</Typography>
</Button>
</form>
所以现在,我正在使用如下验证:
validationSchema: Yup.object().shape({
password: Yup.string().required('Password is required'),
repeatPassword: Yup.string()
.required('')
.oneOf([Yup.ref('password'), null], 'Passwords must match')
}),
在这里,失败的条件是:
在这里,通过上面的这些验证,这些东西不起作用
谁能帮我这个?
因为您使用 message 验证repeatPassword
是空字符串''
。 因此,如果此字段未填写errors.repeatPassword
为''
并且disabled
按钮为false
像这样更新您的代码:
validationSchema: Yup.object().shape({ password: Yup.string().required('Password is required'), repeatPassword: Yup.string().required('Required').oneOf([Yup.ref('password'), null], 'Passwords must match') }),
{errors.repeatPassword.== "Required" && <div>{errors.repeatPassword}</div>}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.