Как проверить отсутствие дублирования с Yup - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть проверка, которая только проверяет свои поля, проверяя, не нарушают ли они его единственные правила, но допускает дублирование внутри массива.

Я хочу какое-то условие, которое не допустит дублирования значений внутри об этом.

Мой объект:

respostas: Yup.array()
    .of(
      Yup.object().shape({
        nome: Yup.string()
          .trim()
          .max(1000, Messages.RESPOSTA_ENQUETE_TAMANHO_MAXIMO)
          .required(Messages.CAMPO_OBRIGATORIO)
      })
    )
    .required(Messages.RESPOSTA_QUANTIDADE_MINIMA)

Например, у меня был бы такой массив: [aaa, bbb, aaa] разрешен, но я не хочу этого дублирования.

1 Ответ

1 голос
/ 12 февраля 2020

Чтобы подтвердить это, вы можете написать свой собственный .test(). Вы можете добавить следующий тест к объекту Yup.

.test("Unique", "Values need te be unique", values => {
    return (new Set(values)).size === values.length;
})

Ошибка будет добавлена ​​к объекту в целом, а не в указанное поле c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...