Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Yup模式电子邮件重置密码字段验证与formik_Javascript_Reactjs_Formik_Formik Material Ui - Fatal编程技术网

Javascript Yup模式电子邮件重置密码字段验证与formik

Javascript Yup模式电子邮件重置密码字段验证与formik,javascript,reactjs,formik,formik-material-ui,Javascript,Reactjs,Formik,Formik Material Ui,我在表单中使用formic,所以这里是我的HTML <form onSubmit={handleSubmit} className={css.loginForm}> <Input variant='standard' textAlign='center' placeholder='Password' id='password'

我在表单中使用formic,所以这里是我的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>
在这里,失败的条件是:

  • 如果repeatpassword字段未填充,则按钮也将启用
  • 我只是想显示密码必须匹配的消息,包括两个密码的条件都需要匹配,并且两个字段都是必需的
  • 在这里,有了这些验证,上面的事情就不起作用了

    有人能帮我吗

  • 因为使用消息验证
    repeatPassword
    是空字符串
    '
    。因此,如果此字段未填充,则错误。repeatPassword为
    '
    且按钮的
    已禁用
    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!==“必需”&&{errors.repeatPassword}}

    validationSchema: Yup.object().shape({
      password: Yup.string().required('Password is required'),
      repeatPassword: Yup.string()
        .required('Required')
        .oneOf([Yup.ref('password'), null], 'Passwords must match')
    }),