RN Cli中出现ReferenceError: Can't find variable: React问题求助
解决React Native Cli项目中「Can't find variable: React」错误
检查所有JSX文件的React导入
虽然你已经在App.js里导入了React,但错误堆栈指向的RootNavigator组件所在文件大概率没导入React。Expo Cli在新版本支持自动导入React,但RN Cli默认没这个配置,所有使用JSX的文件必须显式写:import React from 'react';排查所有自定义组件、导航配置文件(比如RootNavigator.js),确保每个包含JSX的文件顶部都有这行代码。
配置Babel实现React自动导入
要是不想手动给每个文件加导入,可修改Babel配置自动导入:
打开项目根目录的babel.config.js,修改为:module.exports = { presets: ['module:metro-react-native-babel-preset'], plugins: [ ['@babel/plugin-transform-react-jsx', { runtime: 'automatic' }] ] };改完后重启Metro服务,记得加清除缓存参数:
npx react-native start --reset-cache彻底清除项目缓存
缓存残留也可能导致这类问题,按顺序执行以下操作:- 停止当前Metro服务
- 运行:
npx react-native start --reset-cache - iOS项目额外执行:
cd ios && pod install --clean-install && cd .. - Android项目额外执行:
cd android && ./gradlew clean && cd ..
最后重新启动项目:npx react-native run-ios或npx react-native run-android
检查依赖版本兼容性
从Expo迁移到RN Cli可能存在依赖版本不匹配,打开package.json确认react和react-native版本对应(比如RN 0.72.x对应react 18.2.0)。版本不匹配的话,更新依赖后重新安装并清缓存:npm install react@匹配版本 react-native@匹配版本
内容的提问来源于stack exchange,提问作者nazonobunkeisei
相关产品推荐
相关产品推荐

