Как использовать Vuelidate minValue maxValue - PullRequest
1 голос
/ 29 марта 2019

Я не могу найти способ проверить больше 0, так как minValue(0) также принимает 0, но если использовать minValue(1), то любое десятичное число от 0 до 1 также не будет принято.

Также я не знаю, почему я не могу использовать переменные из данных / вычисленных для maxValue ниже. Это работает, если я использую maxValue(200), но мне нужно, чтобы он был динамическим.

validations: {
    form: {
        amount: {
            maxValue: maxValue(this.maxAmount), // Uncaught TypeError: Cannot read property 'maxAmount' of undefined
        },
    },
},
validations: {
    form: {
        amount: {
            maxValue: maxValue(maxAmount), // Uncaught ReferenceError: maxAmount is not defined
        },
    },
},

1 Ответ

2 голосов
/ 29 марта 2019

Я считаю, что в этом случае ваше validations должно быть функцией, а не объектом.

validations() {
  return {
    form: {
      amount: { maxValue: maxValue(this.maxValue) }
    }
  }
}

Соответствующий пример вы можете найти здесь: https://vuelidate.netlify.com/#sub-dynamic-parameters

--EDIT -

Что касается значения больше 0, скопировано из моего комментария:

Я не совсем уверен, но, похоже, для этого случая нет встроенного валидатора.Вы можете написать свой собственный валидатор, который будет выглядеть более или менее так:

const greaterThanZero = (value) => value > 0

validations() {
  form: {
    amount: {
      maxValue: greaterThanZero
    }
  } 
}

или вы можете использовать minValue (0.00000001) в качестве обходного пути. Пользовательские валидаторы также могут принимать параметры, поэтому вы можете написать больше, чем пользовательский валидатор.это будет принимать динамическое значение (соответствующая документация здесь: https://vuelidate.netlify.com/#sub-extra-parameters)

...