为啥 onPress 函数在 Android TV 操作系统中触发了 3 次?
Posted
技术标签:
【中文标题】为啥 onPress 函数在 Android TV 操作系统中触发了 3 次?【英文标题】:Why onPress function fired 3 times in Android TV os?为什么 onPress 函数在 Android TV 操作系统中触发了 3 次? 【发布时间】:2021-05-16 02:52:20 【问题描述】:我是 react native 的新手,我打算为 android TV 开发一个应用程序。
我打开了一个新项目并尝试了一些基本的东西。但是,我发现单击选择按钮后会触发 3 次 onPress 事件。我尝试使用我的真实设备和 AVD 得到相同的结果。
谁能告诉我为什么 onPress 会被解雇 3 次?
import StatusBar from 'expo-status-bar';
import React from 'react';
import StyleSheet, Text, View, Button from 'react-native';
export default function App()
return (
<View style=styles.container>
<Button title="123" onPress=() =>
console.log('555');
/>
<Text>Open up App.js to start working on your app!</Text>
<StatusBar style="auto" />
</View>
);
const styles = StyleSheet.create(
container:
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
,
);
控制台
555
555
555
【问题讨论】:
【参考方案1】:https://snack.expo.io/aqnj-8iOf
如果您查看上面包含您的代码的小吃,您会注意到按下按钮时它不会多次记录。
似乎 javascript 捆绑器正在与模拟器分开记录。 尝试关闭和调试工具并仅保留在终端上,这应该可以解决问题。
【讨论】:
以上是关于为啥 onPress 函数在 Android TV 操作系统中触发了 3 次?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 onPressed 回调不能使用 Bloc 调用我的 Bloc?
Android问题:自定义的布局类,一次Touch,两次调用onTouchEvent()方法,为啥?
onPress 事件在 Android 上的 TouchableOpacity 上不起作用