๊ฐ์ธ ํ๋ก์ ํธ ๊ฐ์ธ ํ๋ก์ ํธ HODU์ต์ ์งํํ๋ ์ค ์ ํจ์ฑ๊ฒ์ฌ ๋ถ๋ถ์์ input๊ฐ์ด 1๊ฐ์ฉ ๋ฐ๋ฆฌ๋ ํ์์ด ๋์๋ค. ํ์๊ฐ์
input๊ฐ๋ค์ ์ ์ฅํ๊ณ ์๋ values ๊ฐ์ฒด์์ฑ values์์ ๊ตฌ์กฐ๋ถํดํ ๋นํ username, password๋ฅผ ์ ํจ์ฑ๊ฒ์ฌ ๋ก์ง์ ๋ฃ์ด์ฃผ๊ณ ์ด๋ฐ์์ผ๋ก onChange๋ฅผ ๊ฐ์งํ๋ฉฐ ๋ณ๊ฒฝํด ์ฃผ์๋๋ฐ ๋ฌธ์ ๋ ์ ํจ์ฑ test ์ ๊ทํํ์์ ๋ง๋ ๋ณ์์ ์ง์ state๊ฐ์ ๋ฃ์ผ๋ ๋ฐ์ํ ๋ฌธ์ ์๋ค. ์์ธ์ onChangeํจ์์ if๋ฌธ์ผ๋ก userNameRegExp, passwordRegExp ๋ฅผ ๋ฃ์๋์ state๋ setState๋ก ๋ณ๊ฒฝ๋์ง ์์ ๊ฐ์ด ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ด๊ณ ์ด๊ฑด setState๊ฐ ๋น๋๊ธฐ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ด๋ค. ํด๊ฒฐ target๊ณผ targetName์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๋ isVal..
Trouble Shooting
์๋ฌ ๋ฐ์ ๊ฐ์ธ ๊ณผ์ ์คํ๋ง์ผ์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋ณด๋ ์ค ๋ฐ์ํ ์ค๋ฅ. ์ํ ๋ํ
์ผ ํ์ด์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ jsxํ์ผ์ ๋ฟ๋ ค์ฃผ๋ ๋์ค ๊ฐ๊ฒฉ ๋ถ๋ถ์ ๋ํ , ์ ์ฐ์ด์ฃผ๋ ์ ๊ทํํ์์ ๋ฃ์ด ๋ง๋ค์ด ์คฌ๋๋ฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ ์ ๋ณ์์ ๊ฐ์ ํ ๋นํ๋ undefined.price ๊ฐ ๋์ด ์๋ฌ๊ฐ ๋ฌ๋ค. ํด๊ฒฐ getPriceWon ํจ์๋ฅผ ๋ง๋ค์ด ๋ฃ์ด์คฌ๋ค. jsx ๋ฌธ๋ฒ์ ํจ์๋ฅผ ์คํํ๋ ๊ฒ ๋ณ๋ก๋ผ๋ฉด useMemo๋ฅผ ์ด์ฉํด ๋ํ๋์๋ฅผ productsData๋ก ์ค์ ํด์ฃผ๊ณ ํจ์๋ฅผ ์ง์ ํ ๋นํด์ค ์ ์์ง๋ง, ๋ฉ๋ชจ์ด์ ์ด์
์ด ํ์ํ ํจ์์ธ๊ฐ๋ฅผ ์๊ฐํด๋ณด๋ฉด ์๋๊ธฐ์ ํจ์ ์์ฒด๋ฅผ ํ ๋นํ๋ค. useState๋ด์ ์ด๊ธฐ๊ฐ์ { price: '' } ์ฒ๋ผ ํ ๋นํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค. ๊ณต๋ถ ํ์ํ ๋ถ๋ถ useEffect๋ ์ปดํฌ๋ํธ ๋ง์ดํธ ํ์ ..