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

React Native中React 18的createRoot警告问题求助

React 18中ReactDOM.render警告的React Native(Expo)解决方案

你遇到的Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead.警告,问题不在你提供的App.js文件中——因为React Native本身不会使用ReactDOM.render,而是通过AppRegistry注册组件。警告根源通常是项目的web端入口配置、依赖版本未适配React 18导致的,以下是具体解决步骤:

1. 升级Expo SDK到兼容React 18的版本

React 18需要搭配Expo SDK 48及以上版本(对应React Native 0.70+)。如果你的SDK版本低于48,直接升级即可自动适配新的React 18 API:

expo upgrade

按照终端提示完成升级,Expo会自动调整项目的入口配置,无需手动修改App.js。

2. 检查并修改web端入口文件(如果启用了Expo Web)

如果你的项目支持web端,根目录下的web/index.js可能仍在使用旧的ReactDOM.render写法,需要替换为createRoot:

// 旧写法
import ReactDOM from 'react-dom';
import App from '../App';

ReactDOM.render(<App />, document.getElementById('root'));

// 替换为React 18的新写法
import { createRoot } from 'react-dom/client';
import App from '../App';

const rootElement = document.getElementById('root');
const root = createRoot(rootElement);
root.render(<App />);

3. 确认React与React Native版本匹配

如果已经升级SDK但警告仍存在,检查package.json中的依赖版本:

  • React版本应为^18.0.0及以上
  • React Native版本应为0.70.0及以上
    如果版本不匹配,手动调整后执行npm install或yarn install重新安装依赖。

内容的提问来源于stack exchange,提问作者Rahul Rajput

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:20:28