React Native run-android不更新修改代码问题求助
解决React Native 0.52.0构建成功但显示默认界面的问题
先给你吃个定心丸:React Native从0.49版本开始就统一用index.js作为全局入口文件了,不再区分index.android.js和index.ios.js,所以你执行react-native init albums只生成index.js是完全正常的,这根本不是操作错误~
下面说导致显示默认界面的核心问题,以及一步步的解决方法:
1. 先修复App.js的语法错误
你的App.js里藏着一个明显的ES6语法bug:export default const App = () => {} 是无效写法——不能在同一个声明里同时用export default和const。
把App.js改成以下两种正确写法之一就行:
写法一:先声明组件再导出
import React from 'react' import { Text } from 'react-native' const App = () => { return ( <Text>Hello World</Text> ) } export default App;
写法二:直接导出匿名组件
import React from 'react' import { Text } from 'react-native' export default () => { return ( <Text>Hello World</Text> ) }
这个语法错误会让RN无法正确加载你的自定义App组件,只能 fallback 到默认的欢迎界面。
2. 清除React Native缓存(关键步骤)
就算修复了代码,RN的缓存可能还攥着旧的bundle不放,导致修改不生效。执行下面的命令清缓存:
清除metro打包工具的缓存
react-native start --reset-cache
顺便清掉安卓的构建缓存
在项目根目录下执行:
cd android && ./gradlew clean && cd ..
3. 重新运行项目
做完上面两步后,再执行:
react-native run-android
这时候应该就能看到你的Hello World文本了。
额外排查点(如果还是不行的话)
- 确认index.js里注册的组件名
'albums',和android/app/src/main/java/com/albums/MainActivity.java里getMainComponentName()返回的名称一致(默认就是项目名,一般不会错) - 打开模拟器/真机的调试模式,按
Ctrl + M调出调试菜单,手动点"Reload"刷新一下
内容的提问来源于stack exchange,提问作者Jonathan Utsu Undelikwo
相关产品推荐
相关产品推荐

