【问题标题】:Error: Cyclic dependency, node was:"dateA"错误:循环依赖,节点为:“dateS”
【发布时间】:2019-02-21 10:23:03
【问题描述】:

我想要一些有关此类场景的最佳实施的信息: 我有一个选择器和两个日期选择器。 当我从选择 (idRisk) 参数 PRESENT 中选择时,这两个日期必须是必需的。 如果 DateA 在 DateB 之前,那么我想在表单中显示验证错误。 实现这一目标的最佳方法是什么? 我写这个是为了完成,但显示这个错误=错误:循环依赖,节点是:“dateA”

validationSchema: Yup.object({
    idRisk: Yup.number().required(),

    dateB: Yup.mixed().when('idRisk', {
        is: Risk.PRESENT,
        then: Yup.mixed().required(),
        otherwise: Yup.mixed()
    }),

    dateA: Yup.mixed()
        .when('idRisk', {
            is: Risk.PRESENT,
            then: Yup.mixed().required(),
            otherwise: Yup.mixed()
        })
        .when(['dateA', 'dateB'], (dateA, dateB) => {
            if (dateA.isBefore(dateB)) return this.required()
        })
})

【问题讨论】:

    标签: javascript formik yup


    【解决方案1】:

    你不能在dateA:Yup.mixed().when()方法中引用参数["dateA"],考虑使用不同的方法,例如:

    dateA: Yup.mixed()
      .when(["dateB"],
        (dateB, schema, node) => {
          if (node.value.isBefore(dateB))
            return this.required();
        }
      )
    

    你可以从node.value获取dateA值

    【讨论】:

      猜你喜欢
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 2015-07-24
      • 1970-01-01
      • 2019-02-21
      • 2021-10-12
      相关资源
      最近更新 更多