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

Material-UI v4示例的“Edit in CodeSandbox”功能失效,求无需从头搭建环境的简易修复方案

Material-UI v4示例的“Edit in CodeSandbox”功能失效,求无需从头搭建环境的简易修复方案

兄弟我之前也碰到过一模一样的问题!当时折腾了好一会儿,终于找到两个不用从头搭环境的快速修复方法,给你分享下:

方法一:适配React 18的新API(推荐,无需修改依赖)

CodeSandbox现在默认会拉取React 18版本,而React 18已经移除了ReactDOM.render这个旧API,换成了createRoot的写法。你只需要修改index.js里的代码就行:

把原来的代码:

import React from 'react';
import ReactDOM from 'react-dom';
import Demo from './demo';
ReactDOM.render(<Demo />, document.querySelector('#root'));

替换成:

import React from 'react';
import { createRoot } from 'react-dom/client';
import Demo from './demo';

// 用新的createRoot方法挂载组件
const rootElement = document.querySelector('#root');
const root = createRoot(rootElement);
root.render(<Demo />);

保存之后,CodeSandbox会自动重新编译,报错就会消失,示例也能正常运行了。

方法二:降级React版本到17.x(不用改代码)

如果你不想调整代码写法,也可以直接把React版本降到Material-UI v4适配的17.x版本:

  • 在CodeSandbox左侧的「Dependencies」面板里,找到react和react-dom这两个依赖
  • 点击每个依赖版本号旁边的小编辑图标,输入17.0.2(或者其他17.x系列的稳定版本)
  • 回车确认后,等待依赖自动更新完成,页面就会正常渲染组件了

为什么会出现这个错误?

简单说就是版本不兼容:Material-UI v4的示例代码是基于React 17及更早版本写的,用的是ReactDOM.render这个旧挂载方法;但现在CodeSandbox默认创建的项目会用React 18,这个版本里已经把ReactDOM.render移除了,所以才会抛出TypeError: _reactDom.default.render is not a function这个错误。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 14:34:52