gpt4 book ai didi

javascript - 在 Yup Schema 中获取另一个字段的值进行验证

转载 作者:行者123 更新时间:2023-12-03 07:08:07 24 4
gpt4 key购买 nike

我正在使用 Formik 和 Yup 进行验证和 TypeScript
我有一个字段需要根据另一个字段的值进行验证。
第一个字段称为价格,第二个字段称为提示。最大提示值是输入价格的 10%。
我尝试使用以下方法为此创建验证:

   tips: yup.number()
.min(0, `Minimum tip is $0`)
.max( parseFloat(yup.ref('price'))* 0.1, "Maximum tip is 10% of the price.");
但是这不会编译,因为 yup.ref 返回一个 Ref。如何在此验证中获取价格字段的值?

最佳答案

number.max无法引用其他字段并在验证时使用它进行计算。
如果你想这样做,你需要用 mixed.test 实现自己的模式。 .
这是一个例子。

  tips: number()
.min(0, `Minimum tip is $0`)
.test({
name: 'max',
exclusive: false,
params: { },
message: '${path} must be less than 10% of the price',
test: function (value) {
// You can access the price field with `this.parent`.
return value <= parseFloat(this.parent.price * 0.1)
},
}),
这里是 doc .
您可以检查并尝试它是如何工作的 here .
我希望这能帮到您。

关于javascript - 在 Yup Schema 中获取另一个字段的值进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63058945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com