์๋์ ํธ์ ์ ์ก ํผ์ ์๋ก ๋ค๋ฉด,
์ ๊ทธ๋ฆผ์ ํ์ ํธ์ ์ ์ก ํผ ์ปดํฌ๋ํธ๋ผ๊ณ ํ์ ๋, state๋ username(๋ณด๋ด๋ ์ฌ๋)๊ณผ tweet(๋ด์ฉ)์ด ๋๋ค.
React์์๋ ์ํ์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ state๋ก ๋ฐ๋ก ๊ด๋ฆฌํ๊ณ ์ถ์ดํ๋ฉฐ, React๊ฐ state๋ฅผ ํต์ ํ ์ ์๋ ์ปดํฌ๋ํธ๋ฅผ Contorlled Component๋ผ๊ณ ํ๋ค.
React๊ฐ state๋ฅผ ํต์ ํ๊ธฐ ์ํด์๋, input์ ๊ฐ์ด ๋ณ๊ฒฝํจ์ ๋ฐ๋ผ, state๋ ์ค์๊ฐ์ผ๋ก ๋ฐ๋๋ฉด๋๋ค.(onChange)
์๋๋ React Controlled Coponent๋ฅผ ๊ตฌํํ ์ฝ๋์ด๋ค.
export default function App() {
const [username, setUsername] = useState("");
const [msg, setMsg] = useState("");
return (
<div className="App">
<div>{username}</div>
<input
type="text"
value={username}
onChange={(event) => setUsername(event.target.value)}
placeholder="์ฌ๊ธฐ๋ ์ธํ์
๋๋ค."
className="tweetForm__input--username"
></input>
<div>{msg}</div>
{/* TODO : ์ input๊ณผ ๊ฐ์ด ์
๋ ฅ์ ๋ฐ๋ผ์ msg state๊ฐ ๋ณํ ์ ์๊ฒ
์๋ textarea๋ฅผ ๋ณ๊ฒฝํ์ธ์. */}
<textarea
placeholder="์ฌ๊ธฐ๋ ํ
์คํธ ์์ญ์
๋๋ค."
className="tweetForm__input--message"
onChange={(event) => {setMsg(event.target.value)}}
value={msg}
></textarea>
</div>
);
}
Reference: ์ฝ๋์คํ ์ด์ธ