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

NextUI Table示例报错:TypeError: 无法读取undefined的'key'属性

解决NextUI Table的TypeError: Cannot read properties of undefined (reading 'key')问题
  • 确认myusers数组的有效性
    这个错误大概率是myusers未正确初始化、API返回解析失败导致其为undefined,或是数组为空但未做渲染判断。NextUI的TableBody遍历数据时,若数据源是undefined就会触发该错误。你可以先在渲染前增加判断逻辑:

    {myusers?.length ? (
      <TableBody>
        {myusers.map((user) => (
          <TableRow key={user.id}>
            {/* 表格单元格内容 */}
          </TableRow>
        ))}
      </TableBody>
    ) : (
      <TableBody>
        <TableRow>
          <TableCell colSpan={你的列数}>暂无数据</TableCell>
        </TableRow>
      </TableBody>
    )}
    

    同时在组件内用console.log(myusers)打印数据,确认API返回的myusers是否是预期的数组格式。

  • 检查TableRow的key值是否存在
    原示例的users可能包含id字段,你需要确认自己的myusers数组中每个对象是否有id或其他唯一标识字段。如果没有id,可以替换为username这类唯一值,临时场景也可以用数组索引(不推荐长期使用):

    // 使用唯一字段作为key
    <TableRow key={user.username}>
    
    // 临时用索引(仅无其他唯一值时使用)
    {myusers.map((user, index) => (
      <TableRow key={index}>
        {/* ... */}
      </TableRow>
    ))}
    
  • 排查全量数据源引用是否替换完成
    因为你是把示例中的users改为myusers,要确认所有关联逻辑里的数据源都已替换——比如useTable钩子的配置、分页/过滤逻辑中的数据源变量,若仍有地方用了旧的users,会导致传递给TableBody的数据为undefined。

  • 处理异步数据加载的时机
    如果myusers是通过API异步获取的,初始状态会是undefined,此时直接渲染TableBody会报错。可以在数据加载完成前增加加载状态:

    if (!myusers) {
      return <div>加载中...</div>;
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 07:18:13