코딩/React

여러 개의 input이 있을 때 useState를 사용하는 경우

AMD만세 2022. 3. 16. 19:35

출처: https://velog.io/@jengyoung/%EC%97%AC%EB%9F%AC-%EA%B0%9C%EC%9D%98-input%EC%9D%B4-%EC%9E%88%EC%9D%84-%EB%95%8C-useState%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C%EB%8B%A4%EB%A9%B4

import React, { useState } from 'react'

const EventPractice = () => {
    const [form, setForm] = useState({
        username: '',
        message: ''
    })
    const {username, message} = form;
    const onChange = e => {
        const nextForm = {
            ...form, // 기존 값 복사
            [e.target.name]: e.target.value // 이 자리에 덮어 씌우기
        }
        setForm(nextForm);
    }
    const onClick = () => {
        alert(username + ': ' + message);
        setForm({
            username: '',
            message: ''
        })
    };
    const onKeyPress = e => {
        if (e.key === 'Enter') {
            onClick();
        }
    }
    return (
        <div>
            <h1>이벤트 연습</h1>
            <input 
                type="text"
                name="username"
                placeholder="사용자명"
                value={username}
                onChange={onChange}
            />
            <input
                type="text"
                name="message"
                placeholder="아무거나 입력해 보세요"
                value={message}
                onChange={onChange}
                onKeyPress={onKeyPress}
            />
            <button onClick={onClick}>확인</button>
        </div>
    );
};

export default EventPractice;

'코딩 > React' 카테고리의 다른 글

WIL #12  (0) 2022.04.04
WIL #10  (0) 2022.03.20
WIL #9  (0) 2022.03.13
WIL #8  (0) 2022.03.06
WIL #7  (0) 2022.02.28