React-Native:触摸TextInput的一侧时不会触发'onBlur'

问题描述 投票:0回答:2
   <TextInput
        ref={ ref => this.mobileNumberRef = ref}
        keyboardType='phone-pad'
        returnKeyType='done'
        onBlur={() => Keyboard.dismiss()}
   />

我想在TextInput区域之外触摸键盘。但是onBlur()没有被解雇。

有人可以让我知道如何实现这一目标吗?谢谢!

react-native onblur
2个回答
0
投票
当输入失去焦点时发生

onBlur

Keyboard.Dismiss关闭活动的键盘并删除焦点。

通过触摸TextInput外部,无论如何您将失去对元素的关注,所以我不确定为什么也需要Keyboard.Dimiss

我也在沙盒上对此进行了测试,对我来说,它工作正常。也许您可以共享更多代码并确切说明您要实现的目标?

最后请检查Unfocus a TextInput in React Native,也许可以帮助您解决问题。


0
投票

首先在文本输入模糊时调用onBlur。但是,如果您想在以下情况下使用的TextInput区域之外触摸时关闭键盘,请执行以下操作

<ScrollView keyboardShouldPersistTaps="handled">
  <TextInput
    onChangeText={this.onChangeText}
    keyboardType="phone-pad"
    returnKeyType="done"
  />
</ScrollView>

<TouchableWithoutFeedback onPress={Keyboard.dismiss} accessible={false}>
  <View style={{ flex: 1, backgroundColor: "#fff" }}>
    <TextInput
      onChangeText={this.onChangeText}
      keyboardType="phone-pad"
      returnKeyType="done"
    />
  </View>
</TouchableWithoutFeedback>

希望这对您有所帮助。随时提出疑问。

© www.soinside.com 2019 - 2024. All rights reserved.