Frontend/React

여러개의 input 상태 관리하기

silver님 2024. 7. 30. 16:24

 

여러 개의 input 상태 관리하기 

 

input이 여러 개일때는 어떻게 관리하는지 알아보자. 

 

 

InputSample.js

import React, {useState} from 'react';

function InputSample() {

  const onChange = (e) => {
    
  };

  const onReset = () => {
   
  };

  return (
    <div>
      <input placeholder='이름' />
      <input placeholder='닉네임' />
      <button onClick={onReset}>초기화</button>
      <div>
        <b>값: </b>
        이름 (닉네임)
      </div>
    </div>
  );
}

export default InputSample;

 

이제 이름과 닉네임에 값을 넣어 출력해준다. 

 

(new!!) InputSample.js 

import React, {useState} from 'react';

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

  const { name, nickname } = inputs; 

  const onChange = (e) => {
    const { value, name } = e.target; 
    setInputs ({
      ...inputs,
      [name] : value
    });
  };

  const onReset = () => {
   setInputs ({
    name : '',
    nickname : '', 
   }); 
  };

  return (
    <div>
      <input name = "name" placeholder='이름' onChange={onChange} value={name} />
      <input name = "nickname" placeholder='닉네임' onChange={onChange} value={nickname} />
      <button onClick={onReset}>초기화</button>
      <div>
        <b>값: </b>
        {name} ({nickname})
      </div>
    </div>
  );
}

export default InputSample;

 

 

 

리액트에서 객체를 수정할 때는 , 

 setInputs ({
      ...inputs,
      [name] : value
    });

 

기존 객체를 직접 수정하면 안되고, 새로운 객체를 만들어서 새 객체에 변화를 줘야한다. 

 

 

 

 

실행 결과 

최종 코드를 실행하면 

화면과 같이 나타난다. 

 

 

 

 

728x90
반응형