react native基本使用

2022-05-06 15:28:10 浏览数 (1)

创建项目

  • npm install -g yarn react-native-cli
  • 安装android sdk
  • 配置android_home
  • 添加platform-tools目录到path
  • 创建项目react-native init 项目名称

项目初始化失败,配置如下 npm config set registry https://registry.npm.taobao.org npm config set disturl https://npm.taobao.org/dist

编译

react-native start运行 添加VScode调试配置后(配置使用react native调试)

yarn 安装包(npm会有些问题)

  • rn 的android添加local.properties内容如下,指定android sdk存放位置

sdk.dir=D:/ProgramFiles/Android/Android_SDK

调试是出错误提示,可以检查任务管理器,关闭所有执行中的node.exe程序,node端口占用可能导致调试连接失败,也可以关闭react native包生成工具,node程序大概是用作生成包的

adb连接

adb devices显示正常

react-devtools调试ui

访问地址(先启动调试,否则vscode提示已经建立调试连接错误),浏览器devtool可以查看变量: http://localhost:8081/debugger-ui/

npm install -g react-devtools下载rn独立的devtools程序,调试react native界面

运行react-devtools,启动界面如下

adb reverse tcp:8097 tcp:8097 浏览器中点击reload按钮连接

apk程序,设置toggle inspector后,选中控件,可以高亮react-devtools中的模块

修改源码

node_modules/react-native目录下面 ReactAndroid/src/main/java/com/facebook/react/views/modal/可以修改编译的目标控件

react native布局尺寸

react view设置flex占满剩余空间,view设置style大小才管用(其他空间,设置style好像不行,比较坑)

react安装unimodules

https://docs.expo.io/bare/installing-unimodules/

混合模式

与原生的java代码混合

添加第三方模块

react-native link @react-native-community/art 命令修改android/settings.gradle和android/app/build.gradle文件

自定义原生控件

错误

  • Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081

cd project/android gradlew clean 删除android/app/build重新编译 app:processDebugResources FAILED错误:升级gradle,检查后台是否运行多个java

  • React Native编译错误 Cannot find module @babel/core解决方案 删除node_modules后重新安装,关闭所有node.exe程序,
  • vscode调试打包错误,手动点击vscode下面的停止包生成工具按钮,重新启动打包

原理

Gradle构建项目、依赖android sdk或者ios

autolink功能

修改下面三个文件

  • settings.gradle
  • app/build.gradle

注意检查android/app/build.gradle的android版本

  • MainApplication.java

react web

npm install react-web-cli -g react-web init 文件夹 https://www.jianshu.com/p/917c35c0b0b4

https://zhuanlan.zhihu.com/p/90181422

react native for windows

npx react-native-windows-init --overwrite(修改npm config的配置路径,如果npx路径包含空格) https://microsoft.github.io/react-native-windows/docs/getting-started

参考:https://reactnative.cn/docs/0.44/android-building-from-source.html

react native 错误

TypeError: Super expression must either Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication)

自定义组件,是否导出模块或者导入模块是否存在 React native断开连接后重连,成功加载后才能有界面上的错误提示,否则只能在vscode中看到错误,app中没有call stack显示)

另一个调试工具占用,vscode调试退出

先启动vscode调试,再打开http://localhost:8081/debugger-ui/(占用调试资源)

Starting a Gradle Daemon, 6 busy Daemons could not be reused

android 目录中gradlew.bat --stop关闭gradle,重启电脑都会有记录,只能执行命令

打包发布

android目录下,gradlew assembleRelease

0 人点赞