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

如何为对象创建TypeScript类型并在react-data-table-component中显示对象名称

解决react-data-table-component类型错误并正确显示用户名称

你的核心问题是类型定义与后端返回数据格式不匹配:你将DataRow中的Users定义为string类型,但后端返回的是一个包含用户对象的数组,导致TypeScript在访问row.Users.name时报错。

步骤1:修正类型定义

先定义单个用户的类型结构,再将DataRow中的Users指定为该类型的数组:

// 定义单个用户的类型
type User = {
  name: string;
};

// 修正DataRow类型,匹配后端返回格式
type DataRow = {
  id: number;
  nickname: string;
  Users: User[]; // 改为User类型的数组
};

步骤2:调整列选择器逻辑

由于Users是数组,需要根据业务需求处理取值逻辑:

  • 若仅需显示第一个用户的名称,可处理空数组避免报错:
const columns: TableColumn<DataRow>[] = [
  {
    name: "ID",
    selector: (row) => row.id,
  },
  {
    name: "nickname",
    selector: (row) => row.nickname,
  },
  {
    name: "name of the user",
    // 取第一个用户的name,数组为空时显示默认文本
    selector: (row) => row.Users[0]?.name || "无关联用户",
  },
];
  • 若需显示所有用户名称,可拼接数组元素:
// 替换上述列的selector为:
selector: (row) => row.Users.map(user => user.name).join(', ') || "无关联用户",

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:35:18