尝试使用 Joi 在 React 表单中验证密码确认时出错

问题描述

我一直在尝试创建一个模式,我可以在其中验证“确认密码”表单字段。在寻找使用 Joi 验证字段的方法时,我发现大多数人使用 Joi.any() 函数,但是当我尝试使用它时,我一直遇到相同的错误。 (这是我一直遇到的错误。)这是我的架构:1

  schema = {
    username: Joi.string()
      .required()
      .label("Username"),password: Joi.string()
      .required()
      .min(5)
      .label("Password"),passwordconfirmation: Joi.any().equal(Joi.ref('password'))
      .required()
      .min(5)
      .label("Password"),dateofbirth: Joi.date()
      //.format(['YYYY-MM-DD','DD-MM-YYYY'])
      .required()
      .label("Date")
  };

这是我的导入语句:

import React from "react";
import Joi from "joi-browser";
import Form from "./Commons/form";
import './CSS/loginForm.css';
import { Link } from 'react-router-dom';
import JoiDate from "@hapi/joi-date";
import '@joi/date';

我不确定我是否使用了错误的库。

解决方法

不是

import Joi from "joi-browser";

是:

import Joi from "joi";