首页 > 其他分享 >Taro踩坑记之React-Native环境教程

Taro踩坑记之React-Native环境教程

时间:2022-12-06 19:34:31浏览次数:78  
标签:npm 坑记 taro image node React run Taro native

Taro踩坑记之React-Native环境教程

LaxusJ 0.9892019.07.27 22:56:55字数 424阅读 10,841

当前环境
Taro CLI 1.3.10 environment info:
System:
OS: macOS 10.14.5
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.16.0 - /usr/local/bin/node
Yarn: 1.17.3 - /usr/local/bin/yarn
npm: 6.9.0 - /usr/local/bin/npm

安装taro

使用 npm 安装 CLI
$ npm install -g @tarojs/cli

$ taro init myApp

运行h5和小程序 (很丝滑所以简略)

跑H5最简单
$ npm run dev:h5
在网页端直接能看效果

跑小程序 需要下载微信小程序客户端
$ npm run dev:weapp
然后在客户端打开对应项目可动态关联,注意不能在小程序客户端修改代码

运行react-native (划重点)

平台以安卓为例,ios应该一致,如果有不一致的地方大家可以提出来

1. clone壳工程

taro-native-shell
https://github.com/NervJS/taro-native-shell

2. 壳工程npm install

3. 壳工程执行 react-native run-android

4. 然后在myApp项目运行 npm run dev:rn

http://127.0.0.1:8081/rn_temp/index.bundle?platform=android&dev=true

5. 壳工程闪退

  image.png

路径:taro-native-shell/node_modules/expo-image-picker/android/build.gradle

77:  api 'com.facebook.fresco:fresco:1.10.0' 

版本改为1.9.0
参考issues
https://github.com/NervJS/taro-native-shell/issues/4

6. 注册name保持一致

原生端MainActivity

    @Override
    protected String getMainComponentName() {
        return "taroDemo";
    }

js端路径 rn_temp/index.js

AppRegistry.registerComponent('taroDemo', () => App);

7. 把src里的jsx文件改为js格式

  image.png
  image.png

相关issues
https://github.com/NervJS/taro/issues/3921
https://github.com/NervJS/taro/issues/3546

8. expo/av问题

  image.png

修改node_module源码
路径node_modules/@unimodules/react-native-adapter/build/NativeViewManagerAdapter.js

  const reactNativeUIConfiguration = UIManager.getViewManagerConfig(reactNativeViewName) || {
    NativeProps: {},
    directEventTypes: {},
  };

换成

  const reactNativeUIConfiguration = (UIManager.getViewManagerConfig ? UIManager.getViewManagerConfig(reactNativeViewName) : UIManager[reactNativeViewName]) || {
    NativeProps: {},
    directEventTypes: {},
  };

9.运行程序

注意不能执行npm run dev:rn 这样会重新生成代码重置掉,一切就都白干了
在控制台执行以下语句

node node_modules/react-native/local-cli/cli.js start -- --reset-cache

最后,看见hello world我跳了起来!


  image.png

标签:npm,坑记,taro,image,node,React,run,Taro,native
From: https://www.cnblogs.com/sexintercourse/p/16960281.html

相关文章

  • React的10种hook
    React目前提供的HookuseState设置和改变state,代替原来的state和setStateuseEffect代替原来的生命周期componentDidMount,componentDidUpdate和componentWillUnmount......
  • Hexo+NexT8.1+Waline踩坑记录
    说明:由于NexT8.1.0移除了对valine的内置支持,转而使用waline。在配置的过程中踩的一些坑。1.waline官方网址https://waline.js.org/2.注册LeanCloudLeanCloud地址:ht......
  • 在windows下导入react项目并且打包编译后部署到nginx上
     在windows下导入react项目并且打包编译后部署到nginx上一、安装npm二、创建react项目三、安装nginx四、总结最近接手了公司的一个django项目,这是应该前后端分......
  • 踩坑记录:Redis的lettuce连接池不生效
    踩坑记录:Redis的lettuce连接池不生效一、lettuce客户端lettuce客户端Lettuce和Jedis的都是连接RedisServer的客户端程序。Jedis在实现上是直连redisserver,多线程环......
  • React学习路上的绊脚石Router
    Routerreact-router:核心库react-router-dom:路由的软件包react-router-nattive:用于开发RN应用的绑定React-router-domHashRouter:http://xxx.com/#/aboutBrowserRou......
  • React Native基础与入门(一)--搭建开发环境
    什么是ReactNative?ReactNative是Facebook开源的一套用于开发移动端跨平台App的技术框架,其代码托管在GitHub上,目前已有一千多名参与者向它贡献代码。有兴趣的可以去查看源......
  • React团队开发-样式冲突
    Cssmodule在React多人开发中css中的类肯定会发生冲突如果每个页面的样式文件加上.module(文件名.module.scss)那么就会避免冲突(原理是将模块的类和id后面会随机生成一......
  • ReactRouter-路由拦截
    路由拦截应用场景:鉴权,当用户进入到需要授权的组件时,这时候进行拦截,判断用户是否授权,如果授权则放行,正常跳转,如果非授权则重定向授权页面。举个栗子importReactfrom......
  • React反向代理-跨域
    反向代理目的:解决跨域问题在src目录下新建一个setupProxy.jsconst{createProxyMiddleware}=require('http-proxy-middleware');module.exports=function(......
  • ReactRouter-路由模式
    路由模式BrowserRouter与HashRouterBrowserRouter没有#的路径HashRouter有#路径举个栗子importReactfrom'react'import{BrowserRouter,HashRouter,Red......