reactjs - 验证 Yup 中的对象项

标签 reactjs validation yup

我正在尝试验证表单输入,例如用户的名字:

const validateForm = () => {
const validationSchema = Yup.object().shape({
  "user.first_name": Yup.string().required("Enter name!"),

我尝试了各种方法...目前我的输入如下

  <Input
          label={"Name"}
          value={updatedTenantData.user.first_name}
          onChange={handleInputChange}
          name="user.first_name"
          error={errors["user.first_name"]}
        />

但是它不起作用。

有谁知道我应该如何用 Yup 命名我的输入?

我不能将其命名为“first_name”,因为值不会按应有的方式发送。

最佳答案

使用 Yup 进行验证时,您应该根据表单数据的嵌套结构在 Yup 中命名输入字段。在您的例子中,输入字段名为“user.first_name”,因此您需要相应地调整验证。

import * as Yup from 'yup';

const validateForm = () => {
  const validationSchema = Yup.object() shape({
    user: Yup.object().shape({
      first_name: Yup.string().required('Enter name!'),
    }),
  });
};

关于reactjs - 验证 Yup 中的对象项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76835581/

相关文章:

css - 配置 Reactstrap 旋转木马图像以响应的最佳方式

php - 日期和时间验证(PHP 和 MySQL)

javascript - 如何在环回中执行整个模型验证?

javascript - 无法将 'touched' 设置为 true

javascript - 将 MUI DatePicker 与 yup 和 react-hook-form 一起使用 - 错误 Prop 无法按预期工作

reactjs - 无法解析 "./SafeAreaContext"

javascript - 为什么 'Error: Couldn' t 在 ReactJS for React Hot Loader 中找到相对于目录的预设 "react-hot"...”?

javascript - react : Setinterval is not stopping even after clearing the timer using clearInterval

ruby-on-rails - Rails 3验证IPv4和IPv6格式

javascript - 火力地堡 : Email has been badly formatted