型 '{ text: string; }' を型 'string' に割り当てることはできません。
Q&A
Closed
解決したいこと
reactとtypescriptでtodoリストを作っているのですが、
型エラーの解決方法がわからないので教えていただきたいです。
発生している問題・エラー
型 '(string | { text: string; })[]' の引数を型 'SetStateAction<string[]>' のパラメーターに割り当てることはできません。
型 '(string | { text: string; })[]' を型 'string[]' に割り当てることはできません。
型 'string | { text: string; }' を型 'string' に割り当てることはできません。
型 '{ text: string; }' を型 'string' に割り当てることはできません。ts(2345)
親のApp.tsxでtaskListを管理していて、それを子であるinputForm.tsxにpropsで渡そうとしています。
app.tsx
const [taskList, setTaskList] = React.useState<string[]>([]);
return (
<div className="body">
<h1>Todoリスト</h1>
<InputForm taskList={taskList} setTaskList={setTaskList}/>
<TodoList/>
</div>
);
inputForm.tsx
export const InputForm = ({taskList, setTaskList}: {taskList: string[], setTaskList: React.Dispatch<React.SetStateAction<string[]>>}) => {
const [inputText, setInputText] = React.useState<string>("");
const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
setTaskList([
...taskList, //ここでエラー
{
text: inputText
}]);
}
0 likes