随着0.63
版本的react native
更新,出现了新的组件。有没有更有经验的人能解释一下Pressable
和TouchableOpacity
有什么不同,什么时候使用它们更好。
发布于 2020-07-09 16:36:22
可按压是RN 0.63的一个新引入,在此之前,可触摸不透明度是包装组件或类似组件最常用的组件。
它们的基本功能是相同的,使文本/图像可点击和用户交互。
但是有了Pressable
,你可以访问很多新的道具,比如:
HitRect
,这是一个很酷的特性,可以访问docs:
手指不是最精确的仪器,用户意外激活错误的元素或错过激活区域是很常见的。为了提供帮助,
Pressable
提供了一个可选的HitRect
,您可以使用它来定义一个触摸可以注册到离包装元素多远的地方。印刷机可以从HitRect
中的任何位置开始。
这显然是我们用于索引的更好的替代方案,在这里它更精确,并且您定义的索引也不会干扰子组件/其他组件的Z- hitslop
。
所以基本上你得到了一个按钮的所有功能,touchableOpacity和很酷的新道具。一定要查看他们的文档:rn-pressable
Hopeit helps.feel免去疑虑
发布于 2021-08-30 01:48:04
我只想补充一下Pressable
的一个缺点和一个变通方法。
缺点是Pressable
没有像TouchableOpacity那样的自动反馈。
但是,您可以使用Pressable的style
属性添加您自己的自定义反馈,该属性带有一个按下的状态标识符:
<Pressable
style={({ pressed }) => [
{ opacity: pressed ? 0.5 : 1.0 }
]}
onPress={() => console.log('Pressed')}
>
<View><Text>Press Me</Text></View>
</Pressable>
发布于 2020-07-09 19:30:54
这里有一张图片来消除你的疑虑。
包装的元素上的工作原理
可打印的
当按键被激活时,将调用onPressIn。当取消激活按下手势时,将调用onPressOut。
按下onPressIn后,将发生以下两种情况之一:
请参考documentation了解更多详细信息。
https://stackoverflow.com/questions/62810567
复制相似问题