Anonymous
В нативном проекте React, Zod и React Crow Form не работает должным образом вместе
Сообщение
Anonymous » 28 май 2025, 17:03
Попытка интегрировать форму react kck и zod в нативном проекте React, применяя правила проверки с использованием ZOD в форму регистрации, но когда я нажимаю кнопку, ZOD не запускается, чтобы показать какие -либо ошибки, даже если поля ввода пусты < /p>
Код: Выделить всё
const signUpSchema = z.object({
firstName: z
.string({ message: 'First name is required' })
.min(2, { message: 'First name must be longer than 2 characters' }),
lastName: z
.string({ message: 'Last name is required' })
.min(2, { message: 'Last name must be longer than 2 characters' }),
mobileNom: z.string({ message: 'Mobile number is required' }),
email: z.string({ message: 'Email is required' }),
password: z
.string({ message: 'Password is required' })
.min(8, { message: 'Password must be longer than 8 characters' }),
});
const AuthForm = ({
headerText,
navLinkText,
submitBtnText,
onSubmit,
routeName,
error,
}) => {
const [permissionResponse, requestPermission] = MediaLibrary.usePermissions();
const [image, setImage] = useState();
// START
const form = useForm({
resolver: zodResolver(signUpSchema),
defaultValues: {
firstName: '',
lastName: '',
mobileNom: '',
email: '',
password: '',
},
});
// END
async function handleUpload() {
if (permissionResponse.status !== 'granted') {
await requestPermission();
}
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ['images', 'videos'],
allowsEditing: true,
aspect: [4, 3],
quality: 1,
});
if (!result.canceled) {
setImage(result.assets[0].uri);
}
}
return (
{headerText}
* Please note that every field must be filled.
{routeName == 'login' && (
)}
{routeName === 'login' && (
)}
{routeName == 'login' && (
Upload your syndicate id
)}
{routeName == 'signup' && (
{}}>
Forgot your password?
)}
{submitBtnText}
{navLinkText}
< /code>
И это код для каждого поля ввода < /p>
const CustomTextInput = ({ containerStyle, name, ...textInputProps }) => {
const {
field: { value, onChange, onBlur },
fieldState: { error },
} = useController({ name });
return (
{error?.message}
);
};
Правила ZOD никогда не отображаются на экране или в консоли
Подробнее здесь:
https://stackoverflow.com/questions/796 ... y-together
1748441000
Anonymous
Попытка интегрировать форму react kck и zod в нативном проекте React, применяя правила проверки с использованием ZOD в форму регистрации, но когда я нажимаю кнопку, ZOD не запускается, чтобы показать какие -либо ошибки, даже если поля ввода пусты < /p> [code]const signUpSchema = z.object({ firstName: z .string({ message: 'First name is required' }) .min(2, { message: 'First name must be longer than 2 characters' }), lastName: z .string({ message: 'Last name is required' }) .min(2, { message: 'Last name must be longer than 2 characters' }), mobileNom: z.string({ message: 'Mobile number is required' }), email: z.string({ message: 'Email is required' }), password: z .string({ message: 'Password is required' }) .min(8, { message: 'Password must be longer than 8 characters' }), }); const AuthForm = ({ headerText, navLinkText, submitBtnText, onSubmit, routeName, error, }) => { const [permissionResponse, requestPermission] = MediaLibrary.usePermissions(); const [image, setImage] = useState(); // START const form = useForm({ resolver: zodResolver(signUpSchema), defaultValues: { firstName: '', lastName: '', mobileNom: '', email: '', password: '', }, }); // END async function handleUpload() { if (permissionResponse.status !== 'granted') { await requestPermission(); } let result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ['images', 'videos'], allowsEditing: true, aspect: [4, 3], quality: 1, }); if (!result.canceled) { setImage(result.assets[0].uri); } } return ( {headerText} * Please note that every field must be filled. {routeName == 'login' && ( )} {routeName === 'login' && ( )} {routeName == 'login' && ( Upload your syndicate id )} {routeName == 'signup' && ( {}}> Forgot your password? )} {submitBtnText} {navLinkText} < /code> И это код для каждого поля ввода < /p> const CustomTextInput = ({ containerStyle, name, ...textInputProps }) => { const { field: { value, onChange, onBlur }, fieldState: { error }, } = useController({ name }); return ( {error?.message} ); }; [/code] Правила ZOD никогда не отображаются на экране или в консоли Подробнее здесь: [url]https://stackoverflow.com/questions/79642384/in-a-react-native-project-zod-and-react-hook-form-not-working-properly-together[/url]