reactjs - 'x' 类型的 React Typescript 参数不可分配给 'SetStateAction<x]>' 类型的参数

标签 reactjs typescript axios react-functional-component

这是代码

尝试编译它时说“‘toDo’类型的参数不可分配给‘SetStateAction’类型的参数”

我不知道它为什么不工作,因为类型似乎是正确的。

如何避免该错误

  const [todoList, setTodoList] = useState<toDo[]>([])

  useEffect(() => {
    loadToDoList()
  }, [])

  const loadToDoList = async () => {
    const toDoList = await ToDoService.getToDoList()
    console.log(toDoList)

    setTodoList(toDoList)
  }

  return (
    <div>
      <ToDoList items={todoList} />
    </div>
  )
}```

最佳答案

此错误是因为您尝试使用类型为 toDo 的变量设置状态当它需要一个 toDo 数组时 toDo[] .

确认 toDoList 的类型由 await ToDoService.getToDoList() 返回等于toDo[]或更改 useState 上的通用类型声明调用 const [todoList, setTodoList] = useState<toDo>([]) , 以防万一 toDo已经是一个数组。

关于reactjs - 'x' 类型的 React Typescript 参数不可分配给 'SetStateAction<x]>' 类型的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72995351/

相关文章:

reactjs - 语义 UI React 中的 React Select

javascript - 在映射 ReactJS 中组件不会被调用

javascript - 逐一读取文件并解析

typescript 类型字符串不可分配给类型 keyof

javascript - 如何使用 axios 同时发布两个对象?

javascript - 从嵌套的 json 响应中提取数据

reactjs - 如何在 React 中使用在 Google Cloud Run Dashboard 上声明的 ENV 变量

angular - 一行和一列的唯一单选按钮

reactjs - react redux,thunk 完成的事件过早发生

javascript - 避免 Nodejs/react-native 的 Realm.open 中的回调 hell