【发布时间】:2022-06-10 17:53:02
【问题描述】:
我正在使用 Next.js、TypeScript、sanity 和 tailwindcss。我尝试使用 react-hook-form 但收到错误消息。
我试过了:
- 将
Post函数更改为箭头函数 - 将
Post函数更改为 const 函数 - 将
IFormInput接口更改为类型
这是错误所在:
23 | formState: { errors },
> 24 | } = useForm<IFormInput>();
| ^
25 |
26 | return (
27 | <main>
这是我在 pages 文件夹中的代码 ([slug].tsx):
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>
);
}
非常感谢任何帮助。谢谢!
【问题讨论】:
-
你在使用 React 18 吗?如果是这样,你可以试试 React 17 吗?
-
是的,我正在使用 react 18。
-
发现挑战切换到反应 17
-
不要降级反应 17 你也需要降级 Next。唯一看起来您的表单丢失的是 onSubmit 处理程序。尝试添加表单提交处理程序。
const onSubmit = async ({values}) => {console.log(values)} <form onSumbit={handleSubmit(onSubmit)}>...
标签: javascript typescript next.js tailwind-css sanity