react-native - 在多层组件的情况下如何纠正事件传播
问题描述
我有 2 个 View 组件使用绝对定位相互渲染。两个视图都使用 TouchableOpacity 绑定了 onPress 事件。现在,当我按下顶视图时,实际上触发了视图 onPress 事件,并且顶部的视图保持原样。我在这里做错了什么?
顶层代码
<TouchableOpacity style={cell} onPress={this.handleMessangerPress}>
<Image style={[filterImage, {marginLeft: 20}]} source={{ uri: imagePath + 'messanger.png' }} />
</TouchableOpacity>
底层代码
<TouchableOpacity style={styles.subTotal} onPress={this.handleSubTotalPress}>
<View>
<Text style={styles.text}>{'Subtotal Rs.' + total}</Text>
</View>
</TouchableOpacity>
在上述情况下,handleSubTotalPress 被调用来代替 handleMessangerPress
解决方案
使用这种方式
<TouchableOpacity style={styles.subTotal} onPress={()=> this.handleSubTotalPress() }>
或者
<TouchableOpacity style={styles.subTotal} onPress={this.handleSubTotalPress.bind(this) }>
推荐阅读
- python - 是否有必要用numpy编写所有变量和循环?
- ssrs-2012 - SQL Server Reporting Services (SSRS 14) 的严格传输安全标头
- javascript - 附加 ajax 请求而没有不良结果
- sql - 用于员工工资的sql计数函数
- sql - 如何从不喜欢特定值的列中删除字符
- python - 如何在 Python 中制作高效的字符串过滤器?
- r - 如何在 R 中逐元素地将列表和向量相乘?
- javascript - 我如何使用带有多个图像上传按钮的 WordPress 媒体上传器
- apache-spark - Apache Spark 流式传输大量 csv 文本文件,其标头包含重要信息
- java - Spring - 使用基于接口的投影是否比基于类的投影 (DTO) 更优化?