0Pricing
React Academy · Lekcja

Reguły walidacji i komunikaty o błędach

Stosowanie wbudowanych reguł walidacji (required, minLength, pattern) oraz wyświetlanie komunikatów o błędach.

Reguły walidacji i komunikaty o błędach to bezpłatna lekcja React Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.

Wprowadzenie

W tej lekcji dodadzą Państwo wbudowane reguły walidacji do pól React Hook Form i będą wyświetlać przy każdym polu zrozumiałe dla użytkownika komunikaty o błędach.

Wbudowane reguły walidacji

Proszę przekazać obiekt reguł jako drugi argument funkcji register(). Wbudowane reguły obejmują: `required`, `minLength`, `maxLength`, `min`, `max`, `pattern` i `validate`.
<input
  {...register('email', {
    required: 'Email is required',
    pattern: {
      value: /^[^@]+@[^@]+\.[^@]+$/,
      message: 'Invalid email address',
    },
  })}
/>

Pola wymagane

Ustawienie `required` na ciąg znaków sprawia, że pole jest wymagane. Ten ciąg stanie się komunikatem o błędzie. Ustawienie wartości `true` powoduje użycie ogólnego komunikatu.
register('name', { required: 'Name is required' })
// or
register('name', { required: true })

Ograniczenia długości

Proszę użyć `minLength` i `maxLength` wraz z obiektem `{ value, message }`, aby ustawić limity znaków i własne komunikaty o błędach.
register('username', {
  minLength: { value: 3, message: 'At least 3 characters' },
  maxLength: { value: 20, message: 'At most 20 characters' },
})

Walidacja wzorca

Reguła `pattern` przyjmuje wartość RegExp. Można jej użyć do sprawdzania formatów adresów e-mail, numerów telefonów lub dowolnego wzorca ciągu znaków.
register('phone', {
  pattern: {
    value: /^[0-9]{10,11}$/,
    message: 'Enter a valid phone number',
  },
})

Wyświetlanie błędów

Proszę odczytać obiekt `errors` z formState. Każde pole, dla którego walidacja się nie powiodła, ma wpis z właściwością `message`. Należy warunkowo renderować ten komunikat pod polem wejściowym.
const { register, handleSubmit, formState: { errors } } = useForm();

<input {...register('email', { required: 'Required' })} />
{errors.email && <p className="error">{errors.email.message}</p>}

Własna walidacja za pomocą validate

Reguła `validate` przyjmuje funkcję, która zwraca `true` dla poprawnej wartości lub ciąg błędu dla niepoprawnej. Należy jej używać do logiki biznesowej, której nie da się wyrazić za pomocą wbudowanych reguł.
register('age', {
  validate: value =>
    parseInt(value) >= 18 || 'You must be at least 18',
})

Wiele własnych walidatorów

Proszę przekazać do `validate` obiekt nazwanych walidatorów, aby uruchomić wiele własnych kontroli dla tego samego pola.
register('password', {
  validate: {
    hasUpper: v => /[A-Z]/.test(v) || 'Needs uppercase',
    hasDigit: v => /[0-9]/.test(v) || 'Needs a number',
  }
})

Wyświetlanie liczby błędów

Całkowitą liczbę błędów można wykorzystać do włączenia lub wyłączenia przycisku przesyłania albo wyświetlenia podsumowania. Należy użyć Object.keys(errors).length.
const hasErrors = Object.keys(errors).length > 0;
<button type="submit" disabled={hasErrors}>Submit</button>

Stylizowanie pól z błędami

Polom wejściowym zawierającym błędy należy nadać klasę CSS, aby uzyskać wizualny efekt czerwonej obwódki. Proszę sprawdzać errors[fieldName], aby warunkowo zastosować tę klasę.
<input
  {...register('email', { required: true })}
  className={errors.email ? 'input-error' : ''}
/>

Szybkie sprawdzenie

Jak wyświetlić komunikat o błędzie dla pola o nazwie 'email' w React Hook Form?

Podsumowanie

Reguły walidacji należy dodawać jako drugi argument funkcji register(): required, minLength, maxLength, pattern, min, max i validate. Aby wyświetlić komunikaty, należy odczytać errors[fieldName].message z formState.

Następnie

Następna lekcja: **Walidacja schematów za pomocą Zod** — zintegrują Państwo @hookform/resolvers i schematy Zod na potrzeby bezpiecznej typowo walidacji formularzy.

Często zadawane pytania

Czy lekcja „Reguły walidacji i komunikaty o błędach” jest bezpłatna?

Tak — pełny tekst „Reguły walidacji i komunikaty o błędach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Reguły walidacji i komunikaty o błędach”?

Stosowanie wbudowanych reguł walidacji (required, minLength, pattern) oraz wyświetlanie komunikatów o błędach. Ćwiczysz React Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć React Academy?

Nie wymagamy żadnego doświadczenia. React Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Reguły walidacji i komunikaty o błędach”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji React Academy?

Tak. Każda lekcja React Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Pierwsze kroki z React Hook Form
  2. Reguły walidacji i komunikaty o błędach
  3. Walidacja schematów za pomocą Zod
  4. Dynamiczne pola z useFieldArray
← Powrót do React Academy