[英]React native TouchableOpacity onPress not working on Android
[英]TouchableOpacity onPress not working on Android
我有 3 个简单的反应组件-
首先是实际视图(让我们将此屏幕命名为 A)-
return(
<ImageBackground
...
>
<ScrollView>
<ChildButton
onPress={this.someFunction.bind(this)}
/>
</ScrollView>
</ImageBackground>
)
然后是 ChildButton 组件---
return(
<ChildButton>
<Button
style={...someStyleObject}
onPress={this.props.onPress}
>
</Button>
</ChildButton>
)
然后是按钮组件---
return (
<TouchableOpacity
onPress={this.props.onPress}
>
{this.props.children}
</TouchableOpacity>
)
这里的主要问题是我的 onPress 没有从屏幕 A 被调用,只有在 Android 上。 它在 iOS 上运行良好。 这里可能的原因是什么?
注意:我已经将控制台放在 ChildButton 和 Button 组件中,但它们没有被打印出来。
当我不小心从“react-native-gesture-handler”而不是“react-native”导入TouchableOpacity
时,我遇到了这个问题。 如果是这种情况,请更改为从“react-native”导入TouchableOpacity
并从“react-native-gesture-handler”中删除导入,它应该可以工作!
当我继承一个正在进行的 RN 项目时,我也遇到了这个问题。 我没有意识到我们安装了这个“react-native-gesture-handler”包并且不小心让 VS Code 自动导入它。
始终检查您的进口! :)
import {TouchableOpacity} from 'react-native'
works fine in both android and iOS
import {TouchableOpacity} from 'react-native-gesture-handler'
Does not work in android, but works in iOS.
所以对用户反应原生导入更好。
如果 TouchableOpacity 从 react-native-gesture-handler 导入,则 onPress 事件不会在 android 中调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.