是的循环依赖:两个领域相互依赖

我有以下是的验证模式


 const validationSchema = Yup.object().shape({

  name: Yup.string(),

  services: Yup.array(Yup.string().oneOf(SERVICES, "Invalid service!")),

  locations: Yup.array(Yup.string().oneOf(LOCATIONS, "Invalid location!")),

  distance: Yup.number()

    .typeError("Invalid distance!")

    .positive("Invalid distance!")

    .when("userFormattedAddress", {

      is: (val) => !!val,

      then: Yup.number().required(),

      otherwise: Yup.number(),

    }),

  userFormattedAddress: Yup.string("Invalid user location!").when("distance", {

    is: (val) => !!val,

    then: Yup.string().required(),

    otherwise: Yup.string(),

  }),

  userCoordinates: Yup.array(

    Yup.number("Invalid user location!").positive("Invalid user location!")

  ),

});

期望的行为是当输入距离时,用户必须输入地址,当用户输入地址时,他们也必须指定距离。但是,我遇到了循环依赖......有什么想法吗?谢谢!


富国沪深
浏览 136回答 1
1回答

侃侃无极

好的,我找到了答案: const validationSchema = Yup.object().shape({ name: Yup.string(), services: Yup.array(Yup.string().oneOf(SERVICES, "Invalid service!")), locations: Yup.array(Yup.string().oneOf(LOCATIONS, "Invalid location!")), distance: Yup.number()   .typeError("Invalid distance!")   .positive("Invalid distance!")   .when("userFormattedAddress", {     is: (val) => !!val,     then: Yup.number().required(),     otherwise: Yup.number(),   }), userFormattedAddress: Yup.string("Invalid user location!").when("distance", {   is: (val) => !!val,   then: Yup.string().required(),   otherwise: Yup.string(), }), userCoordinates: Yup.array(   Yup.number("Invalid user location!").positive("Invalid user location!") ),}, ["distance", "userFormattedAddress"]);您需要将数组中的字段作为 noSortedEdges 参数传递的位置
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript