Я делаю строитель резюме в next.js, и я использую реактивную форму с zod и shadcn. < /p>
"use client"
import { Button } from "@/components/ui/button";
import {
Form,
FormControl,
FormField,
FormItem,
FormLabel,
FormMessage,
} from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { personalInfoSchema } from "@/lib/formValidations";
import { zodResolver } from "@hookform/resolvers/zod";
import React, { useEffect, useRef } from "react";
import { useForm } from "react-hook-form";
const PersonalInforForm = ({ resumeData = {}, setResumeData = "" }) => {
const form = useForm({
resolver: zodResolver(personalInfoSchema),
defaultValues: {
firstName: resumeData.firstName || "",
lastName: resumeData.lastName || "",
jobTitle: resumeData.jobTitle || "",
city: resumeData.city || "",
country: resumeData.country || "",
phone: resumeData.phone || "",
email: resumeData.email || "",
},
});
useEffect(() => {
const { unsubscribe } = form.watch(async () => {
const isValid = await form.trigger();
if (!isValid) return;
//update resume
});
return unsubscribe;
}, [form]);
const photoInputRef = useRef(null);
return (
Personal info
Tell us about yourself.
(
Your photo
{
const file = e.target.files[0];
fieldValues.onChange(file);
}}
ref={photoInputRef}
/>
{
fieldValues.onChange(null);
if (photoInputRef.current) {
photoInputRef.current.value = "";
}
}}
>
Remove
)}
/>
);
};
export default PersonalInforForm;
< /code>
Я даже попробовал некоторых копирования некоторых людей на YouTube, но это не сработало. Я не знаю, что делать. Это связано с любыми проблемами с оборудованием?
Подробнее здесь: https://stackoverflow.com/questions/795 ... d-an-image