DEV/react

React 시작하기 6. Multiple Input State

석봉 2024. 1. 3. 16:16
 

App.js

import React from 'react';
import InputSample from '../src/InputSample';

function App() {
  return (
    <div>
       <InputSample />
    </div>
  );
}

export default App;

 

InputSample.js

import React, { useState } from "react";

function InputSample() {
  // {name, nickname} 객체로 초기화, 초기화는 ''로...
  const [inputs, SetInputs] = useState({
    name: '',
    nickname: ''
  });

  // 비구조화 할당을 통해 값 추출
  const { name, nickname } = inputs;

  // 이벤트(e)로 해당 target의 value 불러오기
  const onChange = (e) => {
    // 우선 e.target 에서 name 과 value 값을 추출
    const { value, name } = e.target;

    SetInputs({
      ...inputs,      // 기존 input 객체 복사
      [name]: value   // name 키를 가진 값을 value로 설정
    })
  };

  // Setter 함수로 값 초기화
  const onReset = () => {
    SetInputs({
      name: '',
      nickname: ''
    })
  };

  return (
    <div>
      <input name="name" onChange={onChange} value={name} placeholder="이름"/>
      <input name="nickname" onChange={onChange} value={nickname} placeholder="닉네임"/>
      {/* onClick으로 Reset 함수 호출 */}
      <button onClick={onReset}>Reset</button>
      <div>
        <b>값 : </b>
        {name} ({nickname})
      </div>
    </div>
  );
}

export default InputSample;