关于react-native:又回到了和ReactNative相爱相杀的日子

最近回到了RN相干的项目组,又开始了和React-Native相爱相杀的日子。也只有RN,能让我久违的在家捣鼓(jia)技术(ban)

这次又碰到什么问题呢? 一个个来讲。

依赖

首先是陈词滥调的依赖装置,npm依赖我就不讲了,遇到的都是常见问题。

这次遇到的是安卓同步gradle的问题

download maven-metadata.xml

卡在了download maven-metadata.xml,一开始认为是网络问题,好,我开全局vpn,我再给你足够的工夫(挂机通宵跑),总没问题了吧? 后果早上起来还是相熟的这行字download maven-metadata.xml。。。。

网上搜了下,有几种计划

  • 用离线模式。

    • 不行,这种解决方案是解决每次都同步的问题,我一次都没同步过,离线模式跑不了。
  • 用aliyun的仓库

    • 不行。同步是胜利了,但编译失败。 报错找不到对应文件。
  • 批改maven地址

    • 不行。

最初通过增加--info参数从新同步,发现是拉取友盟的依赖报403,而后把仓库里友盟的maven地址搜寻一番,发现友盟换地址了。。 详见友盟布告

所以为什么公司的发版机能够失常发版? 这就是传说中的It works on my machine吗? 或者那台机器不须要同步吧。。

正菜

接上来上正菜,需要呢是做一个相似Dropdown的组件,后果在iOS中做完之后安卓上的成果却拉垮了。

一开始我认为是overflow: visible在安卓下不失效的老问题。起初发现当初能够了,看来RN还是有在提高的。

随后发现是measure返回的数据在Android和iOS下不统一。我的需要是拿到以后View绝对父容器的地位

安卓下间接用onLayout中返回的数据就行了。

OK,款式是失常了,然而弹出来的内容无奈点击!并且点击会穿透。详见github issue

2年了还没解决。。 让我想起了我18年给RN提的issue也还没解决。。。我发出下面RN在提高的话!!!

其中也提到了一些解决办法,比方用react-native-gesture-handler中的TouchableOpacity替换RN的。

替换中后的确能点了! 然而穿透的问题没有解决。

尝试要把页面中其余的touch组件对立改成应用react-native-gesture-handler能够解决穿透问题。

然而款式却又不行了。即便把style改成了containerStyle。因为页面的布局略微有些简单,而且波及到了Pad宽屏和手机屏幕的自适应,臣妾改不动啊!!

目前想到2个最终计划

  1. 在Dropdown展现菜单的时候,disable掉页面其余的Touchable组件
  2. 采纳相似Modal遮罩的计划,在顶层实现我的Dropdown,比方用react-native-root-siblings,而不是用当初的absolute形式(这种形式在web上比拟常见)

计划1简略,然而不省事。 所以我大略会用计划2吧~

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年50元

阿里云限时活动-2核2G-5M带宽-60G SSD-1000G月流量 ,特惠价99元/年(原价1234.2元/年,可以直接买3年),速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据