共计 1198 个字符,预计需要花费 3 分钟才能阅读完成。
最近回到了 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 个最终计划
- 在 Dropdown 展现菜单的时候,
disable
掉页面其余的Touchable 组件
- 采纳相似 Modal 遮罩的计划,在顶层实现我的 Dropdown,比方用 react-native-root-siblings,而不是用当初的
absolute
形式(这种形式在 web 上比拟常见)
计划 1 简略,然而不省事。所以我大略会用计划 2 吧~