Проверка YUP: сравните математические значения полей «a» и «b» с полем «c» - PullRequest
0 голосов
/ 14 ноября 2018

Здравствуйте, я новичок в YUP, и мне это нравится :)

Я могу заставить вас выполнить базовую (встроенную) проверку, но я не могу понять, как выполнить проверку, которая требует немного математики.

Например, я знаю, что вы можете использовать Yup.ref ('field') и .lessThan для проверки field_1 против field_2, но что, если вы хотите сделать что-то подобное?

if ((field_1 * field_2}

Мне известно, что, прочитав документацию, вы можете добавить пользовательские методы (например, addMethod) в yup, но мне пока не удалось заставить этот подход работать.

Буду очень признателен за любую помощь или ссылку на пример того, как использовать addMethod таким образом. Заранее спасибо.

1 Ответ

0 голосов
/ 14 ноября 2018

Я наконец нашел пример, который мог бы использовать. Я использовал объект '.test' в YUP и написал функцию. Извините за вопросы новичка. Вот мое разрешение:

.test('test-compare a few values', 'U suck at math (this is the failure message for the test)',
   function(value) {
    let value1 = this.resolve(Yup.ref("1st_number"));
    let value2 = this.resolve(Yup.ref("2nd_number"));
    let value3 = this.resolve(Yup.ref("3rd_number"));
    if((value1 * value2) > value3)
         return false;
    else
         return true;
    }),
...