Хук рефа (useRef)

useRef - возвращает изменяемый ref-объект, свойство .current которого инициализируется переданным аргументом (initialValue). Возвращённый объект будет сохраняться в течение всего времени жизни компонента.

const refContainer = useRef(initialValue);

Давайте посмотрим пример использования useRef() hook:

function TextInputWithFocusButton() {
  const [name, setName] = useState('');
  const nameRef = useRef(null);
  const onButtonClick = () => {
    // `current` указывает на смонтированный элемент `input`
    setName(nameRef.current.value);
  };
  return (
    <div>
      <p>{name}</p>
      
      <input ref={nameRef} type="text" />
      <button onClick={onButtonClick}>Задать имя</button>
    </div>
  );
}

В приведенном выше примере мы используем useRef в сочетании с useState, чтобы отрендерить значение input в тег p.

Ref создается в переменной nameRef. Затем переменную nameRef можно использовать в input, задав как ref. По существу, это означает, что теперь поле ввода будет доступно через ref.

setName будет использоваться для установки state name. Чтобы извлечь имя из тега input, мы читаем значение nameRef.current.value.

Last updated

Was this helpful?