react 中解决 类型“never”上不存在属性“value”。

在 React 中,当你使用 useState 钩子来管理状态时,TypeScript 会尝试推断你的状态变量的类型。在你的例子中,listchannel 被初始化为一个空数组,因此 TypeScript 推断出 listchannel 的类型是 never[],即一个空数组类型。

由于 never[] 类型的数组没有任何属性,所以当你尝试访问 listchannel[1].value 时,TypeScript 会报错,因为 never 类型上不存在任何属性。

要解决这个问题,你需要明确地告诉 TypeScript listchannel 数组中元素的类型。你可以定义一个接口来描述这些对象,然后将这个接口作为 useState 的泛型参数。

解决办法

复制代码
//给这个数组定义类型
interface Channel {
  value: number;
  label: string;
}


const [listchannel, setListchannel] = useState<Channel []>([]);




  useEffect(() => {
    async function getListchannel() {
      const res = await Listchannel();
      const res1 = res.data.channels.map((item:any) => {
        return { value: item.id, label: item.name };
      });
      setListchannel(res1);
    }
    getListchannel();
  }, []);
相关推荐
_Rookie._1 分钟前
web请求 错误拦截
前端
青鸟北大也是北大7 分钟前
CSS单位与字体样式全解析
前端·css·html
咖啡の猫11 分钟前
TypeScript 开发环境搭建
前端·javascript·typescript
co松柏31 分钟前
AI+Excalidraw,用自然语言画手绘风格技术图
前端·人工智能·后端
用户812748281512039 分钟前
安卓Settings值原理源码剖析存储最大的字符数量是多少?
前端
用户812748281512043 分钟前
安卓14剖析SystemUI的ShadeLogger/LogBuffer日志动态控制输出dumpsy机制
前端
Ankkaya1 小时前
cloudflare + github 实现留言板
前端·github
是你的小橘呀1 小时前
单页应用路由怎么搞?React Router 从原理到实战全解析!
前端·javascript
xuedaobian1 小时前
2025年我是怎么用AI写代码的
前端·程序员·ai编程
风止何安啊1 小时前
Set/Map+Weak三剑客的骚操作:JS 界的 “去重王者” ,“万能钥匙”和“隐形清洁工”
前端·javascript·面试