как вводить получить фокус каждый раз в реагировать навигации - PullRequest
0 голосов
/ 22 января 2019

Я использую реагирующую навигацию TabNavigator и хочу, чтобы каждый раз, когда пользователь переходил на вторую вкладку, один текстовый вход на экране получал фокус, а клавиатура появлялась

Ответы [ 3 ]

0 голосов
/ 22 января 2019

Самое простое - добавить «автофокус» к вашему текстовому вводу, например:

 <TextInput 
       placeholder="Type any activity name"
       placeholderTextColor="lightgray"
       ...
       ref="textInput"
       autoFocus />
0 голосов
/ 10 июля 2019

это может помочь вам

this.viewDidAppearListener = this.props.navigation.addListener('didFocus', (payload) => this._viewDidAppear(payload));
Событие

didFocus будет запускаться каждый раз, когда отображается представление (например, viewDidAppear в iOS), поэтому вы можете вручную ввести focus() в текстовый ввод.

0 голосов
/ 22 января 2019

Вы можете использовать ссылки и реагировать жизненный цикл навигации для этого:

constructor(props) {
  super(props);
  this.input = React.createRef();
  this.didFocusDSubscription = this.props.navigation.addListener(
    'didFocus',
    payload => {
      this.input.current.focus();
    }
  );
}
render() {
  return <TextInput ref={this.input} />;
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...