使用Vuelidate进行条件验证?

时间:2017-12-04 10:09:42

标签: javascript vue.js vuex

我有一个表单,可以应用不同的验证,具体取决于存储在VUEX存储中的参数action。我试试这个:

data: function() {
   const validations = {
      sendToProject: {
        cardProject: {
          required,
        },
      },
      recallToBranch: {
        fioReceiver: {
          required,
        }
      }
   }
   return {
     validations,
   }
},
validations() {
  return {
    q: this.validations[this.action]  // supposed to be this.validations['sendToProject']
  }
},
computed: {
  ...mapGetters({
    action: 'action',
  }),
},

这实际上有效,但在引导时抛出错误:

[Vue warn]: Error in render function: "TypeError: can't convert undefined to object"

并且该错误会阻止执行非Vue代码(Bootstrap jQuery插件初始化等)。

如何解决?感谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试过在必需的验证器中使用requiredIf。例如:

validations: {
  anyProp: {
    required: requiredIf(function (abc) {
      return abc > 10 && abc < 20
    })
  }
}