- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个 Yup 验证模式,其中包括对 min_amount 和 max_amount 值的检查。我在 ReactJS 表单上使用它。
const amountsSchema = yup.object({
min_amount: yup.number()
.max(999999999999999)
.nullable()
.transform((v, o) => (o === '' ? null : v))
.typeError('min_amount must be a number')
.when('max_amount', {
is: '',
then: yup.number().min(1),
otherwise: yup.number().lessThan(yup.ref('max_amount'), 'min_amount must be less than maximum amount'),
})
.required(),
max_amount: yup.number()
.max(999999999999999)
.nullable()
.transform((v, o) => (o === '' ? null : v))
.typeError('max_amount must be a number')
.when('min_amount', {
is: '',
then: yup.number().min(1),
otherwise: yup.number().moreThan(yup.ref('min_amount'), 'max_amount must be greater than minimum amount'),
})
.required(),
});
问题是它引发了这个错误:
Error: Cyclic dependency, node was:"max_amount"
如何正确编写架构,以便无论用户首先/最后填写哪个字段,架构都可以在用户填写表单时正确比较这两个字段?启发我写成这样的是以前的时候是这样的:
const amountsSchema = yup.object({
min_amount: yup.number()
.min(1)
.max(999999999999999)
.nullable()
.transform((v, o) => (o === '' ? null : v))
.typeError('min_amount must be a number')
.required(),
max_amount: yup.number()
.min(1)
.max(999999999999999)
.nullable()
.transform((v, o) => (o === '' ? null : v))
.typeError('max_amount must be a number')
.moreThan(yup.ref('min_amount'), 'max_amount must be greater than minimum amount')
.required(),
});
用户可以先填写 max_amount,然后填写更大的 min_amount 并绕过验证。
最佳答案
我觉得你可以试试
const amountsSchema = yup.object().shape({
min_amount: yup.number()
.max(999999999999999)
.nullable()
.transform((v, o) => (o === '' ? null : v))
.typeError('min_amount must be a number')
.when('max_amount', {
is: '',
then: yup.number().min(1),
otherwise: yup.number().lessThan(yup.ref('max_amount'), 'min_amount must be less than maximum amount'),
})
.required(),
max_amount: yup.number()
.max(999999999999999)
.nullable()
.transform((v, o) => (o === '' ? null : v))
.typeError('max_amount must be a number')
.when('min_amount', {
is: '',
then: yup.number().min(1),
otherwise: yup.number().moreThan(yup.ref('min_amount'), 'max_amount must be greater than minimum amount'),
})
.required(),
}, ['max_amount', 'min_amount']);
关于javascript - 错误 : Cyclic dependency with Yup Validation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64020518/
在关系数据库设计中,是否应该担心一个(或多个)“循环图”会带来问题? (简体)例如,表格 T1(T1_Id, ...) T2(T2_Id, T1_Id_Fk, ...) T3(T1_Id_Fk, T2
我正在尝试实现一个基于 HashMap 的树,该树支持给定根键的 O(1) 子树查找。为了这个目标,我正在努力做到以下几点: scala> type Q = HashMap[Char, Q] :6:
前几天我看到了这样的代码: type TcxGridTableControllerAccess = class (TcxGridTableController); TMycxGridD
我刚刚在 Eclipse 上更新到最新的 Scala-IDE 版本,它突出显示了我知道没问题的代码中大量虚假的“非法循环继承”错误(以前是这样,但它仍然可以编译和运行)。 有办法解决这个问题吗?如果不
在我的项目中,我有一个类型 A ,用于一些地方的参数,我希望一堆类型自动转换为该类型。我已经使用 A 的伴随对象中的一些隐式类实现了这一点。 .我已经删除了触发问题所不需要的所有内容: trait A
我遇到了导入难题。添加新的导入后,我收到以下错误 from studentApp.models import modelStudent File abc, line 6, in from
我有 2 个头文件需要(?)相互包含。 第一个 header1.h 看起来像这样: #ifndef HEADER1_H #define HEADER1_H #include "header2.h" t
我想更改默认的 window.location setter 和 getter 函数。 以下代码可以成功运行。但此代码仅适用于有限区域。 var _window = window; (function
注册表: container.Register(Lifestyle.Transient); container.Register(Lifestyle.Transient); 第 1 类: pub
在 JSON site它说 JSON does not support cyclic data structures, so be careful to not give cyclical struc
我有这个 Yup 验证模式,其中包括对 min_amount 和 max_amount 值的检查。我在 ReactJS 表单上使用它。 const amountsSchema = yup.object
我想要一些关于这种场景的最佳实现的信息: 我有一个选择器和两个日期选择器。 当我从选择 (idRisk) 参数 PRESENT 中选择时,这两个日期必须是必需的。 如果 DateA 在 DateB 之
我正在重用 HTTP 通信服务,该服务在 Angular 8 下运行良好,但在 Angular 9 下抛出以下错误: Error: Cannot instantiate cyclic dependen
我正在尝试集成 APP_INITIALIZER在我的项目中从 Angular 开始,以便在启动应用程序之前执行一些功能。当我使用 时出现问题激活路由 在我的服务中来自 Angular。 错误是: Er
我正在尝试实现(使用 Java)有限状态机,但我遇到了以下问题 我的要求是我有一个需要循环一组已知状态的系统 例如S1 -> S2 -> S3 ... SN -> S1 一旦返回到初始状态就停止。 问
几天前,我在我们的一个 C# 应用程序中遇到了以下错误。错误消息如下所示: "Inherited interface '...ResourceManager.ResourcesManager' cau
我想生成如下格式的复合序列: 每个字母系列都有从 00 到 99 的数值。 初始值为A00,后续值为A01、A02等。到达 A99 后,下一个序列应继续 到 B00。当“B”系列用完后,会移到C系列
这是我的代码: sendMail(e) { e.preventDefault(); // fetch('/https://uczsieapp-mailer.herokuapp.com/
我试着按照这个例子here ,但是没有运气。 我在 user.js 文件中有用户模型: import thinky from './thinky'; let type = thinky.type; l
依赖链:关系 -> 用户 => 关系 目标是让关系具有 user_one、user_two 和 last_user 操作。标准的 user_one、user_two 关系工作正常,但是当我尝试使用 R
我是一名优秀的程序员,十分优秀!