这是我的codesandbox链接,https://codesandbox.io/s/vigorous-banach-gf35mn?file=/src/App.tsx: 643 - 655
我没有得到适当的事件类型,这是我的尝试:
const handleChange = (
event: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>
) => {
const { name, value } = event.target as
| HTMLInputElement
| HTMLTextAreaElement;
setNewTask((prev) => ({ ...prev, id: Date.now(), [name]: value }));
};
const handleSubmit = (event: React.FormEventHandler<HTMLFormElement>) => {
event.preventDefault();
if (!newTask.title) return;
setAllTasks((prev) => [newTask, ...prev]);
setNewTask({ id: 0, title: "", description: "" });
};
您只需将event
类型从ChangeEventHandler
更改为ChangeEvent
因为ChangeEventHandler
用于整个Handler函数。但是对于event
对象,类型是ChangeEvent
。
错误信息就是这么说的!
修改后的代码沙箱