I'm using Next.js, TypeScript, sanity and tailwindcss. Im trying to use the react-hook-form but i receive an error.
I've tried:
Post function to an arrow functionPost function to a const functionIFormInput interface to a typeThis is where the error is:
23 | formState: { errors },
> 24 | } = useForm<IFormInput>();
| ^
25 |
26 | return (
27 | <main>
And this is my code ([slug].tsx) in the pages folder:
import { useForm, SubmitHandler } from "react-hook-form";
interface IFormInput {
_id: string;
name: string;
email: string;
comment: string;
}
function Post({ post }: Props) {
const { register, handleSubmit, formState: { errors } } = useForm<IFormInput>();
return (
<form>
<input {...register("_id")} type="hidden" name="_id" value={post._id} />
<input {...register("name", { required: true })} type="text"/>
<input {...register("email", { required: true })} type="text" />
<textarea {...register("comment", { required: true })} />
{errors.name && (<span>- The Name Field is required</span>)}
{errors.comment && ( <span>- The Comment Field is required</span>)}
{errors.email && ( <span>- The Email Field is required</span>)}
<input type="submit" />
</form>
);
}
Any assistance is greatly appreciated. Thank you!
Saying that it cannot read useRef means it's not finding React. This problem can occure if you don't have the stable version of Node.js, currently v16.15.1 as you can see on the official doc. If it's the case, make sure to downgrade it, and for that you coud use n package from npm:
npm i -g n
n stable
# if one of the commands does not pass, you may need to use sudo
sudo npm i -g n
sudo n stable
Delete node_modues, package-lock.json and yarn.lock if you are using yarn. Then start your development server:
rm -rf node_modules package-lock.json yarn.lock
npm install
npm run dev