【发布时间】:2020-05-22 17:42:24
【问题描述】:
我使用 .test() 创建了一个自定义 Yup 验证。
// users is an array of strings
user: Yup.string().test(
"user-check",
"At lease one user should be added",
() => users.length > 0
)
目标是在添加至少一个用户时验证表单。输入字段可让您输入用户名(任何字符串值),然后单击按钮将其添加到列表中。
在添加第二个用户名(或添加第一个然后开始在字段上输入)后,验证运行良好。 我正在分享这个现场演示:https://codesandbox.io/s/hopeful-goldwasser-shpbk
复制步骤
- 点击文本字段。
- 输入用户名。
- 点击红色按钮。
预期
- 表格应该是有效的。
你会得到什么
- 表单无效
对这种奇怪的行为有任何反馈吗?
备注
我不确定这是否是问题的根源。
第一次添加用户时,会调用两次验证:第一次使用空的
users数组,然后使用正确的users值(即您添加的用户)!
【问题讨论】: