我如何检查密码是否与 yup 匹配

how can I check if the password matches with yup

我想使用 oneOf,但它不起作用。我想检查密码和重复密码是否匹配。在 nodejs 中它可以工作,但在 react native 中它不起作用。除 password-Repeat 外,显示所有错误。为什么?

const registerSchema = yup.object().shape({
  fullName: yup.string()
  .required('Your name is required.')
  .min(4)
  .max(40),
email: yup.string()
  .required()
  .min(6)
  .max(255)
  .email(),
password: yup.string()
  .required()
  .min(7)
  .max(255),
passwordRepeat: yup.string()
  .oneOf([yup.ref('password'), null], 'Password does not match')
});

我所有的 TextInput 都有值,onChangeText 和 onBlur 和所有字段都工作正常,除了密码重复

试试这个方法

Yup.object().shape({
  password: Yup.string().required("Required"),
  passwordRepeat: Yup.string()
    .required("Required")
    .when('password', (password, schema) => {
      return schema.test({
        test: (passwordRepeat) => password === passwordRepeat,
        message: 'Password does not match',
      });
    }),
});