AsyncValidatorFn
type AsyncValidatorFn<T> = (value, options?) => Promise<ValidationError | null>;
Defined in: core/types/index.ts:81
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ
Type Parametersβ
Tβ
T = FormValue
Parametersβ
valueβ
T
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ
options?β
ΠΠΏΡΠΈΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ)
Returnsβ
Promise<ValidationError | null>
Promise Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ null Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²Π°Π»ΠΈΠ΄Π½ΠΎ
Exampleβ
// ΠΡΠΎΡΡΠΎΠΉ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡ (Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΎΡΠΌΠ΅Π½Ρ)
const emailExists: AsyncValidatorFn<string> = async (value) => {
const exists = await checkEmail(value);
return exists ? { code: 'exists', message: 'Email already exists' } : null;
};
// ΠΠ°Π»ΠΈΠ΄Π°ΡΠΎΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΎΡΠΌΠ΅Π½Ρ
const emailExistsAbortable: AsyncValidatorFn<string> = async (value, options) => {
const exists = await fetch(`/api/check-email?email=${value}`, {
signal: options?.signal // ΠΠ΅ΡΠ΅Π΄Π°ΡΠΌ signal Π² fetch Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π·Π°ΠΏΡΠΎΡΠ°
});
return exists ? { code: 'exists', message: 'Email already exists' } : null;
};