javascript - YUP 验证 - 如何获取值
问题描述
我得到以下代码:
name: yup
.string()
.trim()
.required(message("nameMissing"))
.max(40, message("nameTooLongWithStatus", {
length: (HERE I NEED HELP),
})),
请参阅我写“这里我需要帮助”的那一行。我希望它是这样的: name.toString().length
但这显然行不通,实际上我尝试过的都没有用。我只是想得到'name'的值并得到它的长度,仅此而已。
所以想法是,“name”应该是一个最多包含 40 个字符的字符串。如果超过 40 个,将显示一条消息“最大字符数为 40(当前长度)”,其中当前长度是您作为输入提供的名称。
message("nameTooLongWithStatus"
将接受参数“长度”并将构造所述消息。
解决方案
如果您提供一个函数作为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')
推荐阅读
- android - Classes using methods of other dependencies is not working in my custom library, any suggestions?
- python - How can I get all the index of all the NaNs of a list?
- go - 从指针接口获取结构的大小
- laravel - Laravel 5.8 工厂状态无法找到名称为 [默认] [CLASS] 的工厂
- c - 使用 g++ 编译时如何修复 structmember.h 中的错误
- selenium - 如何使用 xpath 匹配 div 元素中的文本?
- php - 当我希望仅在第一个条件为真时才调用函数时,将函数作为 IF 的第二个条件传递是否安全?
- swift - 使用 Perfect-Markdown,表格不会像 GitHub 的 UI 那样呈现
- python - 如何自动化 SARIMA 模型进行时间序列预测?
- python - 在大文件中搜索文本并将结果写入文件