我有 FlatList,其中自定义行项目包裹在 TouchableOpacity 内。我希望在 TouchableOpacity 内有多个 onPress ,以便每个子视图都可以处理其受尊重的工作。问题是,当按下子视图时,它会完成它的工作,但父视图onPress也会被执行。如何阻止呢?
<TouchableOpacity onPress={ () => this.doSomething()}>
<Text>Some content</Text>
<Icon name="trash" size={20} onPress={this.onDeleteItem(item)}/>
<TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)
换句话说,如何仅onDeleteItem当用户按下垃圾桶图标时才执行?
任何建议表示赞赏,谢谢。
将第一个 onPress 移至文本,或比最外层容器更合适的位置。
<TouchableOpacity>
<Text onPress={ () => this.doSomething()} >Some content</Text>
<Icon name="trash" size={20} onPress={this.onDeleteItem(item)}/>
<TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)
无法避免父 TouchableOpacity 上的事件侦听器,因为它包装了所有内容。您需要添加一些容器/内容(NativeBase)以使其更加模块化。
| 归档时间: |
|
| 查看次数: |
4683 次 |
| 最近记录: |