繁体   English   中英

如何使 yup 数字接受可为空的值?

[英]How can I make a yup number accept nullable values?

我有以下是的检查:

nrOfApples: yup.number().min(0).max(999),

现在,如果我将该字段留空,它将验证为假。 有没有办法让 yup.number() 接受空值? 我努力了:

yup.number().nullable()

但这似乎不起作用。 关于如何让这样的事情发生的任何想法?

您必须将true传递给可为空的 -

nrOfApples: yup.number().min(0).max(999).nullable(true);

来自: https://github.com/jquense/yup/issues/500

工作示例: https://runkit.com/xdumaine/5f2816c75a0ba5001aa312b2

请注意,如果您添加required().nullable(true) ,则required将覆盖nullable值,并且 null 将不会验证。

更新:

您可以使用transformNaN值转换为null 我用这个更新了runkit:

const contactSchema = yup.object({
  name: yup.string()
    .required(),
  nrOfApples: yup
    .number()
    .min(0)
    .max(999)
    .nullable(true)
    // checking self-equality works for NaN, transforming it to null
    .transform((_, val) => val === val ? val : null) 
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM