首页 > 解决方案 > RNAlert 导致“keyboardWillHide”被调用两次

问题描述

我使用 react-native-keyboard-aware-scroll-view来处理键盘外观。

"react-native": "0.62.2",
"react-native-keyboard-aware-scroll-view": "^0.9.1",

这是代码示例:

<View style={{flex: 1}}>
  <KeyboardAwareScrollView
    alwaysBounceVertical={false}
    showsVerticalScrollIndicator={false}
    style={{flex: 1}}
    keyboardShouldPersistTaps="handled"
    extraHeight={100}
  >
    <View style={{height: 1000}} />
    <TouchableOpacity onPress={() => Alert.alert('Hello', 'world!')}>
      <View>
        <Text>Press me</Text>
      </View>
    </TouchableOpacity>
    <TextInput placeholder={'Give me text'} />
  </KeyboardAwareScrollView>
</View>

并遇到奇怪的行为。重现步骤:

预期行为:

深入研究KASV的代码表明,“keyboardWillHide”在调用 Alert.alert 时触发了两次。这会导致defaultResetScrollToCoords在第一个“keyboardWillHide”之后为空,第二个“keyboardWillHide”导致 scrollToPosition(0, 0, true)。

我试图在不使用任何 KASV 的情况下捕获“keyboardWillHide”。'keyboardWillHide' 也被触发了两次。

看起来这是警报的错误,因为打开 RNModal 只会触发一次“keyboardWillHide”。

有什么想法可以解决这个问题吗?

标签: javascriptandroidiosreact-native

解决方案


推荐阅读