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

React报错Objects are not valid as a React child解决方法(MUI Timeline场景)

报错原因分析
  • 核心错误位于TimelineDot组件内部的{WorkIcon}写法:从@mui/icons-material导入的WorkIcon是组件类本身,属于对象类型,你没有将其转换为可渲染的React元素(即未使用<WorkIcon />的JSX标签语法实例化),React无法直接渲染组件对象,因此触发对应报错。
  • 代码中import { render } from '@testing-library/react'属于测试工具导入,在业务组件中无实际作用,属于冗余代码。
修复方案

仅需修改2处即可解决报错:将{WorkIcon}改为<WorkIcon />,删除无用的render导入,修改后的完整代码如下:

import React from 'react';
import Timeline from '@mui/lab/Timeline';
import TimelineItem from '@mui/lab/TimelineItem';
import TimelineSeparator from '@mui/lab/TimelineSeparator';
import TimelineConnector from '@mui/lab/TimelineConnector';
import TimelineContent from '@mui/lab/TimelineContent';
import TimelineDot from '@mui/lab/TimelineDot';
import WorkIcon from '@mui/icons-material/Work';
import { Typography } from '@material-ui/core';

import './Timeline.css';

const CustomTimeline = ({title, children}) => {
    return (
      <Timeline className={'timeline'}>
      { /* Item Header */ }
      <TimelineItem className={'timeline_firstItem'}>
        <TimelineSeparator>
          <TimelineDot className={'timeline_dot_header'}>
            <WorkIcon />
          </TimelineDot>
          <TimelineConnector />
        </TimelineSeparator>
        <TimelineContent>
          <Typography variant='h6' className={'timeline_header'}>
            {title}
          </Typography>
        </TimelineContent>
      </TimelineItem>
      {children}
    </Timeline>
    );
};

export const CustomTimelineSeparator = () => {
  return (
    <TimelineSeparator className={'separator_padding'}>
      <TimelineDot variant={'outlined'} className={'timeline_dot'} />
      <TimelineConnector />
    </TimelineSeparator>
  );
};

export default CustomTimeline;
可选优化建议

如果你的项目使用MUI v5版本,建议将import { Typography } from '@material-ui/core'替换为import { Typography } from '@mui/material',避免新旧版本依赖混用引发的样式、兼容性异常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:36:07