优购微零售-已上线项目中,完全使用react-native的一些体会

react-global:ReactJS全球指导计划 全球React 立即下载

优购微零售,是一款依托百丽集团的品牌商品,依靠分享推荐商品,既满足购物需求,同时又能够获得分享红利。

3月25日,公司领导紧急通知,由于原来微零售项目负责人离职,app,h5和app服务端都要由我这边团队来做。而且时间特别急,需要在4月底全部提交测试,并在6月1日之前上线。

h5和app服务端我倒是不担心,主要担心的就是app。之前那个负责人规划的是用嵌套H5的方式。但是,我之前有过用类似的方式开发一个helloworld程序的体验,感觉效果很差。

我的团队都是以后台开发为主,只有一个伙伴是干了半年android的维护,不过他说看过需求,问题不大。

有一个兄弟团队的人告诉我,用react-native。 看了一天文档,我就决定搞一把了。

为啥会有这个决定呢,其实,我心里也早就想好了,android这边问题应该不会很大。所以,前期保证android正常上线,ios稍微拖一两周也能说得过去。

就此,走上了一条rn的探索道路。

先说下结果,我们在5月上旬开发完了ios的版本提交测试,比原计划稍微晚了一周左右。5月28日,一次提交就通过了苹果的审核。

这次的RN体会,让我对客户端开发有了一种愉悦的感觉,之前一直抵触ios开发,觉得objective-c太别扭。

遇到几个问题:

1. 页面跳转后隐藏 Tab

在RCTNavigator.m中
- (void)navigationController:(UINavigationController *)navigationController
      willShowViewController:(__unused UIViewController *)viewController
                    animated:(__unused BOOL)animated
这个方法一开始的地方加入:
RCTWrapperViewController * thisController = (RCTWrapperViewController *)viewController;
  if (navigationController.viewControllers.count > 1) {
    thisController.tabBarController.tabBar.hidden = YES;
  } else {
    thisController.tabBarController.tabBar.hidden = NO;
  }


2. 跳转传参

我们在使用

this.props.navigator.push({
  component: 跳转到的页面,
  参数一:参数值
});
发现,这个参数一无法在跳转的页面里面接收。

仔细检查一下我们的navigator系统,我们发现,在设置navigator的时候,我们使用了:

 <Component {...route.params} navigator={navigator} />

按照网上一些做法,通过他们都是这样来传值的:

this.props.navigator.push({
  component: 跳转页面,
  params: {
     参数一:参数值
   }
})
在下一个页面,通过this.props.参数一来获取。

但是这种方式,在我们这里始终无法获取值,真不知道啥原因,求大神指点。

最后我们,在设置navigator的时候,这么写的:

 <Component {...route.params} navigator={navigator} route={route}/>
加入了route,跳转传值还是按照第一种方式,获取值采用 this.props.route.参数一来获取传递的值。


3. 图片

  建议所有图片全部放到ios的xcode项目中去,然后采用 require('image!图片名')的方式,通过相对路径引用图片,我们本地老出现文件编码错误的提示。


4. 尽量不适用 带IOS后缀的组件


5. 一定要用CodePUSH


6.react-native Image里面嵌入text实现透明背景

	<Image ref='storeBackgroundImage'
							source={{uri: 'https://facebook.github.io/react/img/logo_og.png'}}
							style={{flex: 3.4,alignItems:'center',justifyContent:'center'}}>
							<Image ref='storeLogo' source={{uri: 'https://facebook.github.io/react/img/logo_og.png'}} style={styles.storeImage}/>
							 <View style={{backgroundColor: 'rgba(0,0,0,0)'}}>
							 			<Text>店铺的名称</Text>
							 </View>
							 <View style={{backgroundColor: 'rgba(0,0,0,0)'}}>
							 			<Text>店铺的名称</Text>
							 </View>
						</Image>


在Text上层嵌套一个View,设置背景色 0,0,0,0即可。


7. 在变量前面加上global. 就是全局变量


8. 用  `` 实现字符串替换
   

 var {id, name} = this.props.user;
    var firstName = name.split(' ')[0]; // TODO: problems with i18n
    return (
      <TouchableOpacity style={styles.pog} onPress={this.props.onPress}>
        <Image
          style={styles.profilePic}
          source={{uri: `http://graph.facebook.com/${id}/picture`}}
        />
        <Text style={styles.text}>
          {firstName}
        </Text>
      </TouchableOpacity>
    );

后续要加入Redux,还有好多事儿要做。

加油。




告别WSL!实测AMD ROCm7预览版在Windows下跑ComfyUI,速度提升与避坑全记录 本文详细记录了在Windows原生环境下部署AMD ROCm7+PyTorch+ComfyUI的全流程,相比WSL环境性能显著提升。涵盖硬件兼容性确认、开发环境配置、Python环境搭建、ComfyUI部署优化及性能对比测试,为AI绘图爱好者提供实用指南。 阅读详情

相关推荐

深入瑞芯微ISP生态:手把手配置RK3588上的RKAIQ Server并与Windows端RKISP Tuner联调

本文详细介绍了如何在RK3588平台上配置RKAIQ Server并与Windows端的RKISP Tuner进行联调,以实现高效的ISP调优。从环境准备、服务部署到实战调试,涵盖了IMX415相机适配等关键步骤,帮助开发者快速掌握瑞芯微ISP生态的核心技术。

weixin_32447969的博客 670

React Native实现一个带筛选功能的搜房列表(3)

原文链接React Native实现一个带筛选功能的搜房列表(3) 在前两篇文章中已经介绍了如何实现一个支持下拉刷新和上拉加载更多的列表以及如何使用Redux进行单向数据流,那这篇就会介绍下最后一个模块筛选功能的开发即React Native与原生iOS的通信。 开始之前,还是先看一下最终实现的效果 代码传送门--NNHybrid 关于如何进行React Native与原生iOS的通信,在官网中...

weixin_34365417的博客 714

【C++ 使用libxlsxwriter库向excel表格中插入图片 CMake + VS2019】

使用libxlsxwriter向excel表格插入图片

恒星游历者的博客 755

React的css中 :global的含义

css的规则都是全局的 任何一个组件的样式规则 都对整个页面有效。产生局部作用域的唯一方法 就是使用一个独一无二的class名字 不会与其他选择器重名 但是我们与其他人共同开发的时候 无法保证一定与其他人不同 这时候就要用到css modules 下面是React组件App.js import React from "react" import style from './App.css' export default ()=>{ return ( <h1 classNam

weixin_43852916的博客 4125

UE5 使用Slate制作对话窗口

使用Slate制作对话框窗口并获取对话框结果,非UMG

qq_25521145的博客 3189

【自动驾驶端到端5:VADv2: End-to-End Vectorized Autonomous Driving via Probabilistic Planning】

从大规模人类驾驶演示中学习类人驾驶策略是有希望的。但是,规划的不确定性使得从驾驶演示中提取驾驶知识是有挑战性的。从统计学习的角度来看,动作(包括实际和速度)是高度随机的,受许多无法建模的潜在因素影响。

weixin_40000560的博客 1404

react中模块化样式中:global的作用

这种方式模块化引入样式的话,那么编译后的less文件里的样式名都会自动添加后缀。的作用就是不让类名添加后缀。在react中如果是通过。

小蓝人的博客 1256

FLUKA软件在Ubuntu的安装指南(亲测有效)

FLUKA其强大的蒙特卡洛模拟能力使得用户能够模拟复杂的辐射相互作用过程

chencheng1127的博客 2886

react-native 中使用i18n

react-native 中使用i18n yarn add react-native-i18n 配置 index.js import i18n from "react-native-i18n"; import en from "./en"; import zh from "./zh"; i18n.defaultLocale = "en"; i18n.fallbacks = true; i18n.translations = { en, zh, }; export { i18n }; 配置 en

zzttwzq的专栏 928

大模型训练方法全面解析:SFT、RFT、TRPO、DPO、PPO、GRPO、RLH、RLHF技术深度剖析

大模型训练方法全面解析 本文系统介绍了当前主流的大模型训练和对齐技术,包括监督微调(SFT)、拒绝采样微调(RFT)、信任域策略优化(TRPO)、直接偏好优化(DPO)、近端策略优化(PPO)等。这些方法各有特点:SFT简单高效但数据依赖性强;RFT通过质量筛选提升输出质量;TRPO训练稳定但计算复杂;PPO是RLHF核心算法,平衡探索与利用。文章详细分析了各方法的实现原理、优势劣势及适用场景,为开发者选择合适的大模型训练策略提供参考。

2795

18、AI在基础设施管理与运维中的应用及未来趋势

本文探讨了人工智能(AI)在基础设施管理和运维中的广泛应用,包括性能优化、成本节约、网络安全等多个场景。文章详细介绍了AI在不同领域的应用工具、实际案例以及面临的挑战,并展望了未来AI在基础设施管理中的发展趋势。此外,还分析了AI与Site Reliability Engineering(SRE)框架的结合优势,展示了AI如何提升运维效率和系统可靠性。

n7o8p的博客 147

React-native-i18n

为什么80%的码农都做不了架构师?>>> ...

weixin_34015860的博客 352

NXP(恩智浦)—TJA1043TK CAN收发器芯片详解

本文章主要讲解NXP(恩智浦)—TJA1043TK CAN收发器的相关知识。

零零刷的博客 2201

React Native ARKit 使用教程

`react-native-arkit` 是一个为 iOS ARKit 提供 React Native 绑定的开源项目。它允许开发者在使用 React Native 框架的同时,利用 ARKit 的功能来创建增强现实(AR)应用。该项目由 Zehao Li 开发,并遵循 MIT 许可证。 ## 项目快速启动 ### 安装 首先,在你的 React Native 项目中安装 `react-na

gitblog_00772的博客 893

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

React Native Bluetooth ESC/POS Printer 项目教程

React Native Bluetooth ESC/POS Printer 项目教程 1. 项目介绍 react-native-bluetooth-escpos-printer 是一个用于 React Native 的开源项目,旨在通过蓝牙连接 ESC/POS 打印机。该项目允许开发者在其 React Native 应用中轻松实现蓝牙打印功能,适用于需要打印收据、标签等场景。 2. 项目快速启动...

gitblog_00816的博客 1170

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

React Native Barcode Scanner Google 使用教程

React Native Barcode Scanner Google 使用教程 项目介绍 react-native-barcode-scanner-google 是一个基于 React Native 的条码扫描库,利用 Google 的 ML Kit 来实现条码扫描功能。这个库支持多种条码格式,并且易于集成到现有的 React Native 项目中。 项目快速启动 安装依赖 首先,确保你已经安装...

gitblog_00515的博客 821

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

React Native Boundary 使用教程

React Native Boundary 使用教程 项目介绍 react-native-boundary 是一个用于 React Native 应用的简单、高效的地理围栏(geofencing)和区域监控库。它支持 iOS 和 Android 平台,可以帮助开发者实现基于地理位置的区域进入和退出事件监测。 项目快速启动 安装 首先,通过 npm 安装 react-native-boundary:...

gitblog_00480的博客 699

探索React Native的OCR新境界:react-native-mlkit-ocr

探索React Native的OCR新境界:react-native-mlkit-ocr 项目介绍 react-native-mlkit-ocr 是一个基于Google ML Kit的React Native插件,专为移动设备上的文本识别而设计。通过这个插件,开发者可以轻松地将强大的OCR(光学字符识别)功能集成到他们的React Native应用中,无需复杂的配置或依赖外部服务器。 项目技术分析...

gitblog_00735的博客 899

从零构建门店巡检应用:React Native 与 Expo 的完整实战指南

门店巡检应用需要同时覆盖 Android、iPhone 与浏览器三种运行环境:店员打开首页即可查看当天任务、勾选完成进度、记录现场问题,并在关闭应用后仍然保留数据。本文基于 Datawhale easy-vibe 项目中 [React Native 与 Expo 门店巡检专题](https://link.gitcode.com/i/54a0f74cfb9665cea85f275e028b78dc)

gitblog_01113的博客 698

开源项目推荐:React Native 实时物体检测插件

开源项目推荐:React Native 实时物体检测插件 在人工智能与移动应用结合的今天,将机器学习能力融入App已经成为了提升用户体验的关键。为此,我们发现了一款强大的开源工具——vision-camera-realtime-object-detection,它为React Native开发者带来了零原生代码编写的实时物体识别解决方案,让您的应用程序能够即刻具备智能视觉功能。 项目介绍 visi...

gitblog_01170的博客 1119

探索React Native Maps:地图集成的利器

探索React Native Maps:地图集成的利器 【免费下载链接】react-native-maps 项目地址: https://gitcode.com/gh_mirrors/react/react-native-maps ...

gitblog_00016的博客 1422

【亲测免费】 探索未来支付新境界:React Native版 Square Reader SDK

探索未来支付新境界:React Native版 Square Reader SDK 在数字化支付时代,无缝集成、高效可靠的支付解决方案是每个开发者和商家的共同追求。今天,我们将目光聚焦于一个令人瞩目的开源项目 —— React Native版 Square Reader SDK。这个项目不仅为React Native开发者提供了接入Square强大支付生态的桥梁,而且以简洁高效的特性,彻底改变了移...

gitblog_00563的博客 575

推荐使用react-native-barcode-scanner-google:高效、准确的条码扫描解决方案

推荐使用react-native-barcode-scanner-google:高效、准确的条码扫描解决方案 项目介绍 react-native-barcode-scanner-google 是一个专为Android平台设计的React Native条码扫描视图组件。该项目利用Google的Barcode API实现,提供了快速、准确且方便的条码扫描功能。尽管自2019年9月起该项目不再维护,但由...

gitblog_01198的博客 768

React Native ESC/POS 打印机库教程

React Native ESC/POS 打印机库教程 项目介绍 react-native-esc-pos-printer 是一个非官方的 React Native 库,用于在 EPSON TM 打印机上进行打印,支持 Epson ePOS SDK for iOS 和 Epson ePOS SDK for Android。该库允许开发者通过 React Native 应用程序与 EPSON 打印机...

gitblog_00121的博客 625

探索React Native的蓝牙经典连接:react-native-bluetooth-classic

探索React Native的蓝牙经典连接:react-native-bluetooth-classic 在移动开发中,跨平台的蓝牙通信一直是一个重要但又颇具挑战性的领域。而今天,我们向您推荐一个强大的开源库——react-native-bluetooth-classic,它专为React Native应用设计,旨在解决iOS蓝牙经典(非BLE)连接的问题,通过External Accessory...

gitblog_00099的博客 1384

探索React Native蓝牙经典:连接无限可能

探索React Native蓝牙经典:连接无限可能 在移动应用开发领域,蓝牙技术的应用日益广泛,尤其是在需要与外部设备进行数据交换的场景中。react-native-bluetooth-classic项目正是为了填补iOS平台上蓝牙经典技术的空白而诞生。本文将深入介绍这一开源项目,分析其技术特点,并探讨其应用场景。 项目介绍 react-native-bluetooth-classic是一个旨在解...

gitblog_00081的博客 792
上一篇: 阉割版和MVP
下一篇: storm用来做实时日志分析的浅显使用
傻的可爱
博客等级 码龄20年 22粉丝 81原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值