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

ReactJS使用react-table时在表格中添加button按钮报错如何解决

错误根因

JSON 语法仅支持字符串、数字、布尔值、数组、对象、null这几种数据类型,不支持识别JSX元素。你在IncomingMessagesData.json里直接写入了<button>标签,JSON解析到<符号时无法匹配合法语法,直接抛出解析错误。

修复步骤

  • 第一步:清理数据文件,移除JSON中的非法代码
    修改IncomingMessagesData.json为如下内容,删除不符合JSON规范的view字段:
[
  {
    "senderName": "أحمد",
    "senderType": "معلم",
    "messageAddress": "رسالة إلى أولياء أمور الطلاب",
    "dateOfMessage": "11/12/2021"
  }
]
  • 第二步:修改列配置文件格式与内容
    你当前的列配置文件使用.json后缀,但包含ES Module的export语法,本身就不符合JSON规范,先将文件重命名为IncomingMessagesColumns.js,再修改内容为如下,直接在列定义里自定义单元格渲染按钮:
export const IncomingMessagesColumns = [
  {
    Header: "اسم المرسل",
    accessor: "senderName"
  },
  {
    Header: "نوع المرسل",
    accessor: "senderType"
  },
  {
    Header: "عنوان الرسالة",
    accessor: "messageAddress"
  },
  {
    Header: "تاريخ الرسالة",
    accessor: "dateOfMessage"
  },
  {
    Header: "قراءة",
    // 自定义单元格渲染,直接返回按钮元素
    Cell: ({ row }) => <button type="button" onClick={() => console.log("查看当前行数据", row.original)}>عرض الرسالة</button>
  }
]
  • 第三步:清理组件冗余代码
    IncomingMessagesTable.js中写的onLoadMore函数不符合函数组件语法,你使用的是函数式组件不能调用this.setState,没用的话直接删除这段代码即可。

修改完成后即可正常渲染表格的查看按钮,若要实现查看消息详情的逻辑,直接在按钮的onClick事件中处理row.original对应的行数据即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:03:00