์ถ์ฒ : https://react.vlpt.us/basic/07-useState.html
https://react.vlpt.us/basic/09-multiple-inputs.html
9. ์ฌ๋ฌ๊ฐ์ input ์ํ ๊ด๋ฆฌํ๊ธฐ · GitBook
9. ์ฌ๋ฌ๊ฐ์ input ์ํ ๊ด๋ฆฌํ๊ธฐ ์ง๋ ํํ ๋ฆฌ์ผ์์ ์ฐ๋ฆฌ๋ input ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ์ฌ ์์๋ณด์๋๋ฐ์, ์ด๋ฒ์๋ input ์ด ์ฌ๋ฌ๊ฐ์ผ๋๋ ์ด๋ป๊ฒ ๊ด๋ฆฌํด์ผ ํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. ์ฐ์
react.vlpt.us
import React, { useState } from 'react';
์ด ์ฝ๋๋ ๋ฆฌ์กํธ ํจํค์ง์์ useState๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋ค.
const [number, setNumber] = useState(0);
const [์ํ ๊ฐ ์ ์ฅ ๋ณ์, ์ํ ๊ฐ ๊ฐฑ์ ํจ์] = useState(์ํ ์ด๊ธฐ ๊ฐ);
const onIncrease = () => {
setNumber(number + 1);
}
const onDecrease = () => {
setNumber(number - 1);
}
์ด๊ธฐ๊ฐ์ธ 0์์ onIncrease ํจ์๊ฐ ํธ์ถ์ด ๋๋ฉด number+1๋ ๊ฐ์ด set๋๊ณ ,
onDecrease ํจ์๊ฐ ํธ์ถ์ด ๋๋ฉด number-1๋ ๊ฐ์ด set๋๋ค.
- ์ข๋ ๊ณ ๊ธ ๋ฒ์
const [inputs, setInputs] = useState({
name: '',
nickname: ''
});
์ด๊ธฐ๊ฐ์ ์ด๋ ๊ฒ๋ ๋ณํ๋ ์ ์๋ค.
์ฐธ๊ณ ๋ก Typescript์์๋ useState<boolean>(false);์ด๋ฐ์์ผ๋ก <>๊ดํธ ์์ Type์ด ๋ค์ด๊ฐ๋ค.
const { name, nickname } = inputs;
๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ์ถ์ถํ๋ค.. ์ ์ธ๊ณ.. ใ ใ ..
inputs์ name๊ณผ nickname์ ์ถ์ถํ๋ ๊ฒ์ด๋ค..
const onChange = (e) => {
const { value, name } = e.target; // ์ฐ์ e.target ์์ name ๊ณผ value ๋ฅผ ์ถ์ถ
setInputs({
...inputs, // ๊ธฐ์กด์ input ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ๋ค
[name]: value // name ํค๋ฅผ ๊ฐ์ง ๊ฐ์ value ๋ก ์ค์
});
};