You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native useState报错:状态undefined、setState不是函数

问题原因

两个异常完全由同一处语法错误导致:useState Hook 的返回值是数组,你错误使用了对象解构的语法接收返回值,导致状态和setter方法全部解构失败。

错误逻辑说明
  • useState(initialValue)执行后返回的是长度为2的数组:第一个元素是当前状态值,第二个元素是修改状态的setter函数,必须用数组解构(方括号[])接收
  • 你当前用对象解构(花括号{})接收时,相当于尝试从数组对象上读取user、setUser、connectStatus、setConnectStatus这类自定义属性,数组本身没有这些属性,解构出来的所有值都是undefined,这就是控制台打印user得到undefined的原因
  • 由于解构出来的setUser本身是undefined,不是函数类型,调用时自然会抛出「setUser is not a function」的错误
修复方案

将两处useState的解构语法从对象解构改为数组解构即可,修正后的状态声明代码:

// 原代码的花括号{}替换为方括号[]
const [connectStatus, setConnectStatus] = useState(false);
const [user, setUser] = useState("martin");
额外注意点

你代码头部从react-native导入的Seperator存在两个问题:

  • React Native官方内置组件不存在名为Seperator的组件
  • 单词拼写错误,正确拼写为Separator
    如果后续运行报组件不存在的错误,直接删除这个未使用的导入即可,避免编译报错。

内容的提问来源于stack exchange,提问作者emotionalDamage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:21:22