YUP 验证 - 如何获取值

Cri*_*scu 4 javascript validation reactjs yup

我得到了以下代码:

    name: yup
      .string()
      .trim()
      .required(message("nameMissing"))
      .max(40, message("nameTooLongWithStatus", {
        length: (HERE I NEED HELP),
      })),
Run Code Online (Sandbox Code Playgroud)

请参阅我写的“我需要帮助”的行。我希望它是这样的: name.toString().length

但这显然行不通,实际上我尝试过的任何方法都行不通。我只是想获取“名称”的值并获取它的长度,仅此而已。

所以我们的想法是,“name”应该是一个最多 40 个字符的字符串。如果超过 40,将显示一条消息“最大字符数为 40(当前长度)”,其中当前长度是您作为输入提供的名称。

message("nameTooLongWithStatus"将接受参数“长度”并构造所述消息。

Mur*_*ati 6

如果您提供一个函数作为 的第二个参数,您将获得这些字段max()

path,value,originalValue,label,max

name: Yup.string()
.trim()
.max(5, (obj) => {
  const valueLength = obj.value.length;
  return `Name (length: ${valueLength}) cannot be more than ${obj.max}`;
})
.required('Required')
Run Code Online (Sandbox Code Playgroud)