1

我们遇到了一个奇怪的问题。问题是,当您按下按钮时,由于某种原因,正在发生对 underlayColor 的突出显示,但 Touchable 没有触发 onPress 处理程序。

如果您继续按下按钮(如在长按事件中),则会运行 onPress 处理程序

有任何想法吗?我们仍在使用 RN 的旧版本,即 0.59.9。我想补充一点,在 iOS 上,行为是预期的。

更新(代码):

<TouchableHighlight
    activeOpacity={0.5}
    disabled={disabled}
    delayPressIn={0}
    delayLongPress={0}
    onPress={onPress}
    underlayColor={hexWithOpacity(Palette.Primary, 0.05)}
    style={[
      styles.container,
      buttonStyles(disabled)[variant],
      buttonContainerDimmensions()[size],
      style,
    ]}
    {...props}
  >
    <Text
      style={[
        buttonTextStyles(disabled)[variant],
        buttonFontDimmensions()[size],
      ]}
    >
      {title}
    </Text>
  </TouchableHighlight>
4

1 回答 1

0

onPress={onPress} 应该是一个类似的函数

onPress={() => {console.log('onPress')}}

或者

onPress={this.onPress}

其中 onPress 被定义为某处的函数

于 2020-03-12T10:45:21.320 回答