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

React项目中将jsx组件转为.tsx格式后无法渲染记录问题咨询

你最核心的错误是丢失了组件入参的解构语法:
原来JSX版本的组件入参是({certificate}),意思是从组件接收的props对象里,解构出certificate字段直接使用。
你转换为TSX的时候改成了(certificate:any),这里的certificate实际是整个props对象,而不是props里的certificate属性。你打印的时候看到的内容应该是外层包裹了一层对象的结构:{certificate: {你实际的证书数据}},所以直接取certificate.certificateNo本质是在props对象上找这个字段,自然找不到,也就渲染不出内容。


修复代码

补回解构语法,同时替换any为规范的类型标注:

import React from 'react'
import Certificate from './models/certificate';
import axios from 'axios';

// 定义组件Props类型
interface ResultTableProps {
  certificate: Certificate
}

// 补回解构,对props做类型标注
const ResultTable = ({certificate}: ResultTableProps) => {
  console.log(JSON.stringify(certificate));
  
  return (
    <tr key={certificate.certificateNo}>
      <td>{certificate.certificateNo}</td>
      <td>{certificate.sponser}</td>
      <td>{certificate.protoColNo}</td>
      <td>{certificate.startDate}</td>
      <td>{certificate.endDate}</td>
      <td>{certificate.noOfSubjects}</td>
      <td>{certificate.country}</td>
      <td>{certificate.requestStatus}</td>
    </tr>
  )
}

export default ResultTable

额外优化建议:你的代码里没有用到useState和Link,可以直接移除对应的import,避免不必要的打包体积。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:24:07