Подтвердить что ты не робот

React Inative TextInput blur потребляет событие TouchableHighlight press

У меня есть <TextInput>, который я бы хотел отправить, когда я нажимаю кнопку Red Post, <TouchableHighlight>. Когда TextInput сфокусирован, я заканчиваю набирать текст, и я нажимаю на кнопку "Почта", клавиатура закрывается, но кнопка не регистрирует крана.

Я попытался использовать событие TextInput onBlur, но он не дает мне координат точки касания, поэтому я не знаю, действительно ли касательная точка над кнопкой или нет.

screenshot

4b9b3361

Ответ 1

Вам нужно добавить свойство keyboardShouldPersistTaps = {true} в свой ScrollView.

Вот что docs говорит:

keyboardShouldPersistTaps bool:

Если значение false, нажмите вне фокуса текста, когда клавиатура закрывает клавиатуру. Когда true, просмотр прокрутки будет не улавливайте краны, и клавиатура не будет автоматически удаляться. значение по умолчанию - false.

Ответ 2

@frank, я думаю, вы нашли работоспособное решение, но в дополнение к "keyboardShouldPersistTaps", если вы закроете свое представление в элементе TouchableWithoutFeedback с помощью onPress, который вызывает функцию rejectKeyboard, это должно устранить проблему.

 <ScrollView keyboardShouldPersistTaps={true} ref='scrollView'>
   <TouchableWithoutFeedback onPress={dismissKeyboard}>
     <View>
     -View Content-
     </View>
  </TouchableWithoutFeedback>
</ScrollView>