1

我在 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>
4

3 回答 3

0

尝试使用onTouchStart而不是onPress.

所以改变:

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

至:

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

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

于 2020-04-03T11:02:11.237 回答
0

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

于 2020-04-03T10:57:37.117 回答
0

我不知道以前的海报使用的是什么版本的 React Native,但“onTouchStart”仅适用于 View 组件,而不适用于 Touchable Opacity。

将我的可触摸对象包装在视图中可以很好地模仿 onPress 行为

<View onTouchStart={myEventHandler}>
  <TouchableOpacity>
    <Text>My Touchable Button</Text>
  </TouchableOpacity>
</View>
于 2020-07-15T20:51:35.107 回答