我正在用TypeScript和React创建一个小的todo应用程序。但是,当我想添加一个todo到我的todolist时,我得到了一个错误。我猜我的setter函数是错误的,我需要添加Dispatch和setStateAction。不幸的是,我刚刚学习TypeScript,想知道我做错了什么。
谢谢你的帮助!
import React, { Dispatch, SetStateAction, useState, useContext } from "react";
import { FormWrapper } from "./Style";
import { TodoContext } from "../../context/TodoContext";
interface Todo {}
function Form({}: Todo) {
const [todo, setTodo] = useState<string | undefined>(undefined);
const [todos, setTodos] = useContext(TodoContext);
const submitHandler = (event: React.FormEvent<HTMLFormElement>) => {
event.preventDefault();
setTodos({ id: todos.length + 1, label: todo });
setTodo("");
};
return (
<div>
<FormWrapper>
<form action="" onSubmit={(e) => submitHandler(e)}>
<input type="text" name="" id="" placeholder="Todo" />
<input
type="submit"
placeholder="Add todo"
value={todo}
onChange={(e: React.ChangeEvent<HTMLInputElement>): void =>
setTodo(e.target.value)
}
/>
</form>
</FormWrapper>
</div>
);
}
export default Form;
我想在我的日程表上加个待办事项。
1条答案
按热度按时间8yoxcaq71#
看起来你的
setTodos
是一个Todo
对象数组的setter。在这种情况下,您可能希望向该数组添加一个额外的Todo,您可以这样做,例如。其中: