react native基本使用

创建项目

  • npm install -g yarn react-native-cli react-native
    或者

npm install -g create-react-native-app
npm install -g create-expo-app 新版中有expo(自动安装expo的apk,a运行打包expo可能卡死,需要重启,reload重新编译)

  • 安装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 cnpm
cnpm install -g react-devtools下载rn独立的devtools程序,调试react native界面

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

在这里插入图片描述

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

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


或者inspect中调试
chrome://inspect(需要fq),edge://inspect调试

修改源码

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪力左手

囧rz

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值