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

useState设置初始状态报错TypeError: setNav is not a function如何解决

问题原因

React 提供的useState Hook 返回值为长度为2的数组,数组第一位是状态值,第二位是状态更新函数。你代码中使用了对象解构语法对返回值进行解构,完全不符合useState的返回结构,导致setNav没有被正确赋值,调用时自然会抛出undefined相关的类型错误。

解决方法

将对象解构替换为数组解构即可,修改后的代码如下:

const [nav, setNav] = useState(true);
const changeState = () => {
    setNav(false)
};

useEffect(() => {
    changeState();
}, [nav]);

如果需要显式声明状态类型适配TypeScript校验,可以给useState添加泛型约束:

const [nav, setNav] = useState<boolean>(true);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:06:04