Как получить автоматическую фокусировку Semantic UI React Dropdown при монтировании его родительского компонента?

Я использую раскрывающийся список пользовательского интерфейса Semantic React и хотел бы, чтобы он как можно скорее сфокусировался когда монтируется его родительский компонент: пользователь должен иметь возможность немедленно начать поиск.

Я пробовал использовать ссылку в render() родителя:

<Dropdown ref={dd => (this.MyDropdown = dd)}
        ... />

... а затем вызывая фокус в функции componentDidMount родительского компонента. Но Dropdown не имеет функции focus, поэтому этот метод не сработает.

componentDidMount() {
    // I want to do something like the next line here, but 'focus' is not available on the component.
    //this.MyDropdown.focus();
  }

Так что же мне делать вместо этого?

Вот то, что я пробовал до сих пор в codeandbox. Обратите внимание на закомментированную строку в componentDidMount.


person spirit    schedule 09.11.2017    source источник


Ответы (1)


Попробуй это:

<Dropdown searchInput={{ autoFocus: true }} />

После модификации ваш код будет выглядеть как это

<Dropdown
    ref={dd => (this.MyDropdown = dd)}
    placeholder="Please type something, dude"
    fluid
    search
    selection
    options={options}
    searchInput={{ autoFocus: true }}
  />

Использованная литература:

person 董承樺    schedule 05.01.2018
comment
Нет, в официальном документе этого не написано. - person 董承樺; 19.01.2019