React

React - 특정 DOM 선택하기(useRef)

Starters 2020. 9. 9. 18:30

DOM을 가져올 때 React에서 사용하는 법

(getElementById / querySelector 같이)

 

함수형 컴포넌트에서 하는 방식

이전에 만든 컴포넌트에서 초기화 버튼을 누른 뒤에 초기화를 하고 나서 포커스가 초기화 버튼으로 가 있다.

-> React에서는 실행 뒤 포커스를 이름부분의 input쪽에 옮기거나 하는 기능이 없다.

=> DOM에 직접 접근해야함

 

DOM에 직접 접근하기

1. useRef 불러오기

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

2. useRef() 선언 - 이전 코드에 nameInput 변수 추가

function InputSample(){
  const [inputs, setInputs] = useState({
    name: '',
    nickname: '',
  });
  const nameInput = useRef();
  const { name, nickname } = inputs;
  

3. JSX코드에 ref 추가

return (
    <div>
      <input
       name="name"
       placeholder="이름"
       onChange={onChange}
       value={name}
       ref={nameInput}
      />
      <input

4. onReset 함수 사용 뒤에 포커스 주기위해 코드 삽입

const onReset = () => {
    setInputs({
      name: '',
      nickname: '',
    });
    nameInput.current.focus();
  }
  

 

5. 결과

초기화 이후에 포커스가 이름에 가게 된다!