这就是我声明状态的方式
const [input, setInput] = React.useState('')
const [goals, setGoals] = React.useState<string[]>([])
Run Code Online (Sandbox Code Playgroud)
这是我的错误代码:
const addHandler = () => {
setGoals((curGoals) => [...curGoals, { key: Math.random().toString(), value:input}])
}
Run Code Online (Sandbox Code Playgroud)
这是一个打字稿提示:
类型为“(curGoals: string[]) => (string | { key: string; value: string; })[]”的参数不可分配给类型为“SetStateAction<string[]>”的参数。类型“(curGoals: string[]) => (string | { key: string; value: string; })[]”不可分配给类型“(prevState: string[]) => string[]”。类型“(string | { key: string; value: string; })[]”不可分配给类型“string[]”。输入“字符串|” { 键:字符串;值:字符串;}' 不可分配给类型“string”。输入 '{ 键:字符串;值:字符串;}' 不可分配给类型 'string'.ts(2345)
我仍然不明白为什么我的代码仍然输出这个错误。我确实在 useState 中使用了字符串类型的数组。
我该如何解决这个错误?