React-Native踩坑记录二
正文
1.Image组件的borderRadius画圆有平台兼容性问题,在IOS下会失效
解决方法有几种
(1)在外面包裹一层View,对View组件使用borderRadius就可以了,这是我的做法
(2)在同一级属性块下加上overflow: 'hidden',我没试过,大家可以阅读下面的链接
2.React-Native的渐变实现方案
(1) 使用react-native-linear-gradient:https://github.com/react-native-community/react-native-linear-gradient
(2) 让设计直接提供渐变的背景图片,简单粗暴
3.React-Native的阴影实现方案
(1)借助react-native-shadow模块实现(需要引入其他原生代码)
(2)借助react-native-shadow-card模块实现(不需要引入其他原生代码)
(3)自己实现,通过shadowOpacity等原生属性单独实现对IOS的兼容,通过elevation属性单独实现对Android的兼容,实际上这也是react-native-shadow-card的做法
(4)让设计直接提供阴影的背景图片,简单粗暴
4.Animated插值的用法
插值映射的时候,outputRange可以是一个 “数字 + 特殊字符”的形式,例如
outputRange: ['0%', '100%']
或者
outputRange: ['0deg', '100deg']
或者
|
5.RN动画三板斧
第一步:初始化动画值
this .state = { progress: new Animated.Value( 0 ) }; |
第二步:改变动画值
Animated.timing( this .state.progress, { toValue: endRatio, duration: 800 , easing: Easing.inOut(Easing.ease) // easing: Easing.linear() }).start(); |
第三步:取值放进Animated.View中(必须用Animated下的组件)
|
6.style对象的格式
style对象不一定强制要求用StyleSheet.create包裹,普通的对象字面量也可以写入组件的style属性当中
7. fontWeight的取值
可以控制字体粗细,取值有“normal”,"bold","100" ~ "900",其中 “400”是正常,“700”是"bold"
{ fontWeight: "100" } |
8.Image的长度最好不要使用比例
Image的长度定义最好使用固定的px,如果使用比例控制长度的话,会遇到不太好处理的情况
9. 自定义弹框实现方案
选用生态:react-native-root-siblings
原理:重写AppRegistry.registerComponent,然后插入元素
我叫彭湖湾,请叫我胖湾
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)