React useState使用时出现setData is not a function报错如何解决
报错原因
你编写的代码缺少对useState Hook的调用:
const [data, setData] = ([]);
上述代码的右侧是一个直接定义的空数组,对空数组进行解构赋值时,data会拿到数组第0位的undefined,setData会拿到数组第1位的undefined,调用undefined自然会抛出「setData不是函数」的报错。
解决方法
在空数组外层添加useState调用即可,修改后的代码如下:
// 组件顶部先引入useState import { useState } from 'react'; // 组件内正确声明state const [data, setData] = useState([]);
补充注意事项
useState的入参就是state的初始值,这里传入[]就表示data的初始值为空数组- 只有
useState的返回值才是固定的[state值, state更新函数]结构,能正确解构出可用的setter函数
内容的提问来源于stack exchange,提问作者Stephanieraymos
相关产品推荐
相关产品推荐

