Преобразование myRef в версию хуков

Я нашел этот ответ: ReactJS и автофокус

но я не знаю, как это преобразовать:

constructor(props) {
    super(props);
    this.myRef = React.createRef();
}

componentDidMount(){
  this.myRef.current.focus();
}

<input type="text"  ref={this.myRef} />

реагировать на версию хуков.

Я пробовал это сделать:

const myRef = () => {
  React.createRef().current.focus();
}

<input type="text"  ref={myRef} />

но получил ошибку:

TypeError: Cannot read property 'focus' of null

person Community    schedule 14.08.2019    source источник


Ответы (1)


Помимо useRef вам необходимо использовать _ 2_ тоже, который запускается после рендеринга. [] означает, что выполняется только один раз.

import React, { useRef, useEffect } from 'react';

function Component() {

  const ref = useRef(null);

  useEffect(() => {
    ref.current.focus();
  }, []);

  return <input type="text"  ref={ref} />;

}
person Andy    schedule 14.08.2019