반응형
import React, { useState } from 'react'

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

    const { name, nickname } = inputs;

    const onChange = (e) => {
        const {value, name} = e.target;
        console.log("name :: " , name , " [name] :: " , [name], " value : ", value);
        setInputs({
            ...inputs,
            [name]: value
        });
    }
    
    const onReset = () => {
        setInputs({
            name: '',
            nickname: '',
        })
    };
    return (
        <>
            <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>
        </>
    );
}

export default InputSample;

 

onChange1, onChange2를 만들어 name과 nickname 두개를 컨트롤 해도 되지만,

input에 name을 설정함으로써 하나의 onChange에서 모든 input의 value를 control할 수 있는 방법이다.

반응형