от
Я пытаюсь получить автофокус моего поля через несколько секунд, но не могу войти в
Iphone device
. Я установил автофокус на true через 1 секунду, используя метод setTimeout в методе componentDidMount.
componentDidMount() {
  setTimeout(() => {
    this.setState({
      autofocus: true
    })
   }, 1000);
}
Я ожидаю, что при загрузке страницы поле ввода должно получить фокус через 1 сек.              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

2 Ответы

0 голосов
от
Вы не можете изменить автофокус динамически, решение может быть использование ref и в вашем componentDidMount или в любом другом месте, где вы хотите установить фокус на ввод, как показано ниже
import React, { Component, createRef } from 'react';

class MyInput extends Component {
  constructor(props) {
    super(props);
    this.textInput = createRef();
  }
  componentDidMount() {
    setTimeout(() =
0 голосов
от
Из документов,   Когда использовать ссылки      Есть несколько хороших вариантов использования ссылок:         Управление фокусом, выделением текста или воспроизведением мультимедиа.   Запуск императивных анимаций.   Интеграция со сторонними библиотеками DOM.   
constructor(props) {
    super(props);
    this.myRef = React.createRef();
}

componentDidMount(){
  setTimeout(()=
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...