带有onPress的多个孩子的TouchableOpacity

时间:2017-12-17 23:15:46

标签: react-native

我在TouchableOpacity中有自定义行项目换行的FlatList。我想在TouchableOpacity中有多个onPress,这样每个子视图都可以处理他们受尊敬的工作。问题是,在按下子视图时它会完成它的工作,但父级onPress也会被执行。如何制止?

<TouchableOpacity onPress={ () => this.doSomething()}>
  <Text>Some content</Text>
  <Icon name="trash" size={20} onPress={this.onDeleteItem(item)}/>
<TouchableOpacity>

换句话说,当用户按下垃圾桶图标时,如何仅执行onDeleteItem

任何建议都表示赞赏,谢谢。

2 个答案:

答案 0 :(得分:1)

将您的第一个onPress移动到Text,或者比最外面的容器更合适。

<TouchableOpacity>
  <Text onPress={ () => this.doSomething()} >Some content</Text>
  <Icon name="trash" size={20} onPress={this.onDeleteItem(item)}/>
<TouchableOpacity>

Theres无法避免父TouchableOpacity上的事件侦听器,因为它包装了所有内容。您需要添加一些容器/内容(NativeBase)来进行更多模块化。

答案 1 :(得分:0)

为了正确使用zIndex,必须使用基于本机的容器。由于zIndex,我也遭受了分配。然后使用容器,一切正常。