Vee-validate с Zod: пользовательское сообщение об ошибке не отображается при размытии в API композиции Vue 3

Я пытаюсь использовать vee-validate с zod, используя Composition API и собственные сообщения об ошибках.

Проблема в том, что если я нажму на вход и сразу же щелкну за его пределами, появится сообщение об ошибке Zod по умолчанию «Требуется». Правильное пользовательское сообщение об ошибке «Требуется название компании» будет отображаться только в том случае, если я введу текст во входные данные, а затем удалю его.

Как мне остановить отображение сообщения об ошибке по умолчанию? Всегда должно использоваться собственное сообщение об ошибке.

Вот живая версия: https://stackblitz.com/edit/nuxt-starter-qlkfhp?file=comComponents%2FMyForm.vue

<template>
  <form class = "m-6">
    <InputText v-model = "businessName" v-bind = "businessNameAttrs" />
    <div>{{ errors.businessName }}</div>
  </form>
</template>

<script setup lang = "ts">
import { defineComponent } from 'vue';
import { z } from 'zod';

const formSchema = toTypedSchema(
  z.object({
    businessName: z.string().min(1, { message: 'Business name is required' }),
  })
);

const { errors, handleSubmit, defineField } = useForm({
  validationSchema: formSchema,
});

const [businessName, businessNameAttrs] = defineField('businessName');
</script>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
84
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

для этого вы можете использовать клавишу required_error:

Например:

const formSchema = toTypedSchema(
  z.object({
    businessName: z
      // add required_error key over here
      .string({ required_error: 'Business name is required' })
      .min(1, { message: 'Business name is required' }),
  })
);

Там также есть другой ключ, который вы можете использовать вы можете проверить здесь

Другие вопросы по теме