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();
  }, []);
相关推荐
T___T7 小时前
写着写着,就踩进了 JavaScript 的小坑
前端·javascript·面试
月亮慢慢圆8 小时前
首字母模糊匹配
前端
一个有理想的摸鱼选手8 小时前
CesiumLite-在三维地图中绘制3D图形变得游刃有余
前端·gis·cesium
一千柯橘8 小时前
Three.js 坐标系完全入门:从“你在哪”到“你爸在哪”都讲清楚了
前端
独角仙梦境8 小时前
同事:架构太复杂了,源码文件找半天。 我:源码溯源了解一下?
前端·vue.js
八哥程序员8 小时前
从border-image 到 mask + filer 实现圆角渐变边框
前端·css
ChangYo8 小时前
解决网页前端中文字体包过大的几种方案
前端
车前端8 小时前
现代 Nginx 优化实践:架构、配置与性能调优
前端·nginx
槁***耿8 小时前
前端路由守卫
前端
百***35488 小时前
前端视频处理开发
前端·音视频