Как всегда показывать клавиатуру в react native?

#react-native #react-navigation #redux-form

#react-native #реакция-навигация #redux-форма

Вопрос:

У меня есть представление, в котором есть поле формы redux, связанное с вводом текста.

Прежде всего, есть ли способ показать эту клавиатуру при первоначальном рендеринге без скольжения в анимации?

Во-вторых, по завершении редактирования есть ли способ сохранить клавиатуру там?

Я попытался установить blurOnSubmit значение false в TextInput , кажется, это мешает мне потерять фокус, щелкнув снаружи.

Наконец, на этой странице также есть кнопка, которая запускает запрос с введенным значением, при разрешении модальное значение будет скользить снизу вверх, чтобы показать экран успеха. Этот модал реализован с помощью react-navigation . Модальная клавиатура имеет относительно небольшую прямоугольную форму, а остальная часть прозрачна. Таким образом, пользователи могут видеть исходную страницу, даже когда установлен режим success. В этом случае есть ли способ всегда отображать клавиатуру на исходном экране, даже когда включен режим modal?

Комментарии:

1. попробуйте вызвать focus() для вашего ввода текста при componentWillReceiveProps событии

2. Спасибо, Hend. Этот вид работает с двумя другими проблемами. Первый — когда я нажимаю кнопку за пределами textinput, клавиатура немного щелкает, я думаю, это вызвано вызовом focus для каждого WillReceiveProps. Другая проблема заключается в том, что когда модальный режим включен, клавиатура, похоже, находится на том же уровне, что и модальный, а не на том же уровне, что и TextInput.

Ответ №1:

Прежде всего, есть ли способ показать эту клавиатуру при первоначальном рендеринге без скольжения в анимации?

Нет. React Native не поддерживает способ отключения анимации слайдов.

Во-вторых, по завершении редактирования есть ли способ сохранить клавиатуру там?

Если текстовый ввод отображается внутри ScrollView, добавьте keyboardShouldPersistTaps=handled . https://facebook.github.io/react-native/docs/scrollview#keyboardshouldpersisttaps. Она будет удерживать фокус.

Комментарии:

1. Спасибо тебе, Эстевао. Это хорошо работает для одной страницы, как только появляется модальная, она по-прежнему скрывает клавиатуру.

2. Единственный способ сохранить клавиатуру открытой — это сохранить фокус при вводе текста. Если TextInput потеряет фокус, клавиатура сразу же закроется.