当按下另一个可触摸的不透明度时,一个可触摸的不透明度不会按下

One touchable opacity doesn't press when another touchable opacity is pressed

我在 React native 中制作了一个程序,其中有两个按钮,按下它们会增加点击计数器。 问题是当按下一个按钮时,另一个按钮不会响应并且不会增加计数器。按钮用Touchableopacity制作,动作用onPress完成。

<View style = {{flex:1,flexDirection:'row',justifyContent:'center'}}>
            <View>
            <TouchableOpacity style = {styles.button}
            onPress = {() => this.start() }
            >
              <Text style={styles.buttonText}>
                Tap
              </Text>
            </TouchableOpacity>
            </View>
            <View>
            <TouchableOpacity style = {styles.button}
            onPress = {() => this.start() }>
              <Text style={styles.buttonText}>
                Tap
              </Text>
            </TouchableOpacity>
            </View>
          </View>
</View>

我使用 onTouchStart 而不是 onPress 解决的问题

尝试使用 onTouchStart 而不是 onPress

所以改变:

<TouchableOpacity style={styles.button} onPress={() => this.start()}>

收件人:

<TouchableOpacity style={styles.button} onTouchStart={() => this.start()}>

您想要这样做的原因是,当一个按钮仍被按下时,另一个按钮上的 onPress 操作不会触发,直到您停止按下原始按钮。

我不知道之前的发帖者使用的是什么版本的 React Native,但“onTouchStart”仅适用于 View 组件,不适用于 Touchable Opacity。

在视图中包装我的 touchable 可以很好地模仿 onPress 行为

<View onTouchStart={myEventHandler}>
  <TouchableOpacity>
    <Text>My Touchable Button</Text>
  </TouchableOpacity>
</View>