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

React报错:Failed to construct 'Comment',渲染对象数组遇问题

解决React组件渲染对象数组的错误问题

嘿,我来帮你搞定这个问题!你现在遇到的Failed to construct 'Comment'错误,还有组件渲染不出来的问题,主要是两个新手常踩的小失误导致的,咱们一步步来修正:

第一个错误:组件继承对象错误

你的Details类继承了Comment,这完全不对哦!React的类组件必须继承自React.Component(这是React类组件的标准基类),Comment并不是React提供的组件基类,所以会直接抛出构造错误。

第二个错误:渲染方法名拼写错误

你把render()写成了rendeer()——少了一个字母r!React找不到组件的渲染方法,自然没法正常渲染内容啦。

修正后的完整代码

咱们把这两个问题改过来,整理后的代码如下:

import React from 'react';

// App组件部分
class App extends React.Component {
  render() { 
    return ( 
      <div> 
        Your data: { this.props.val.map( (s, i) => <Details key={i} data={s} /> ) } 
      </div> 
    ); 
  }
}

// Details组件部分
class Details extends React.Component { 
  render(){ 
    return ( 
      <div> 
        <span>{this.props.data.name} {this.props.data.cgpa}</span> 
      </div> 
    ); 
  }
}

export default App;

额外的新手友好提示

  • 如果你用的是React 16.8+,可以把Details改成更简洁的函数组件,代码会更清爽:
const Details = ({ data }) => {
  return (
    <div>
      <span>{data.name} {data.cgpa}</span>
    </div>
  );
}
  • 另外,虽然用数组索引key={i}暂时能用,但如果你的数组元素有唯一标识(比如id字段),最好用那个作为key,这样React的渲染性能会更好,还能避免一些奇怪的渲染bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:44:26