Untitled

๋”๋ฏธ ๋ฐ์ดํ„ฐ๋กœ ๋กœ๊ทธ์ธํ•˜๊ธฐ

์ด๋ฒˆ์—๋Š” ๋กœ๊ทธ์ธ์ฆ‰, ๊ฐ€์งœ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € LoginForm์— submitํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”

 const onSubmitForm = useCallback(() => {
    console.log(id, password);
    setIsLoggedIn(true); //Props๋กœ AppLayout์—์„œ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.
  }, [id, password]);

Ant-design์—์„œ๋Š” onSubmit ๋Œ€์‹  onFinish๋ฅผ ์‚ฌ์šฉํ•ด

e.preventDefault ์ฆ‰ ์ƒˆ๋กœ๊ณ ์นจ์„ ๋ง‰์•„์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AppLayout.js๋„ ๋ฐ”๊ฟ”์ค˜์•ผ ๊ฒ ์ฃ ?

 {isloggedIn ? <UserProfile /> : <LoginForm setIsLoggedIn={setIsLoggedIn}/>}

๋งŒ์•ฝ ๋กœ๊ทธ์ธ์ด true๋ฉด ํ”„๋กœํ•„, false๋ฉด ๋กœ๊ทธ์ธ์ฐฝ์„ ๋„์šฐ๋Š” ํ™”๋ฉด์ž…๋‹ˆ๋‹ค.

UserProfile.js ๋งŒ๋“ค๊ธฐ

Ant-design์˜ Card๋ฅผ ์ด์šฉํ•ด ์œ ์ € ํ”„๋กœํ•„์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Card๋Š” ์ •๋ง ์“ธ๋ชจ๊ฐ€ ๋งŽ์œผ๋‹ˆ ํ•œ๋ฒˆ ๊ตฌ๊ฒฝ๋‹ค๋…€์˜ค์„ธ์š”

์ž, ๊ทธ๋Ÿผ ์ด์ œ UserProfile ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž‘์„ฑํ•ด๋ณผ๊นŒ์š”

UserProfile ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ

Card์— ๊ด€ํ•œ ์ž์ƒˆํ•œ ๋‚ด์šฉ์€ ๋‹ค๋ฃฐ๊ฒƒ์ด ๋งŽ์•„์„œ ์œ„์— ๊ฐœ๋ฐœ์ž๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ํ™ˆ์—์„œ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด?

์ด๋Ÿฐ ๊ฒฐ๊ณผ์ฐฝ์ด ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

์ด์ œ ๊ฐ€์งœ๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ํ•ด๋ณผ๊ฒŒ์š”

๋ฌผ๋ก  Applayout์—์„œ Props๋ฅด ์ „๋‹ฌํ•ด์ค˜์•ผ ํ•˜๋Š”๊ฑธ ์žŠ์œผ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” ํ”„๋กœํ•„ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•ด๋ณผ๊นŒ์š”?

ํ”„๋กœํ•„ ํŽ˜์ด์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๊ฐ„๋‹จํ•œ NicknameEditForm.js๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด๋ณผ๊นŒ์š”?

๋‹ค์Œ์€ ๋ณต์žกํ• ์ˆ˜๋„ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

๋ณด๋ฉด ๋ณต์žกํ•ด๋ณด์ผ์ˆ˜๋„ ์žˆ์ง€๋งŒ Ant-Design ๊ณต์‹๋ฌธ์„œ์— ๋‹ค ๋‚˜์™€์žˆ๋Š” ๋‚ด์šฉ๋“ค์ž…๋‹ˆ๋‹ค.

๋จธ๋ฆฌ์— ์™ธ์šธํ•„์š” ์—†์ด ๋ฌธ์„œ ๋ณด๋ฉด์„œ ์“ฐ๊ณ ์‹ถ์€ ๋ถ€๋ถ„๋งŒ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์“ฐ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์ฃ .

๊ฒฐ๊ณผ๋ฌผ์„ ํ•œ๋ฒˆ ๋ณผ๊นŒ์š”?

๋ ˆ์ด์•„์›ƒ์ด ์ž˜ ์žกํžŒ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์—๋Š” ์ปค์Šคํ…€ ํ›…์„ ์ด์šฉํ•œ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค.

ant-design์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž์„ธํ•œ ์–ธ๊ธ‰์€ ์•ˆํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ๋Š” input์˜ ์ƒํƒœ๊ฐ’์„ ๊ด€๋ฆฌํ•ด์ค„๊ฑด๋ฐ์š”

input์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— useState๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉํ•ด์ค˜์•ผ ํ• ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋Ÿฐ์‹์œผ๋กœ ๋ชจ๋‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ์š”

  1. ์ปค์Šคํ…€ ํ›…์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๊ธฐ

  2. useState์ž์ฒด๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ

์ปค์Šคํ…€ํ›…์„ ๋จผ์ € ๋งŒ๋“ค์–ด ๋ณผ๊นŒ์š”?

ํ›… ์•ˆ์—์„œ change๋˜๋Š” ๊ฐ’๋“ค์„ ์ƒํƒœ๋กœ ๋ฐ”๊ฟ”์ค€๋’ค valuedhk ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•ด์ง€์ฃ ?

๋‹ค์Œ๋ฐฉ๋ฒ•์€ useState์˜ ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ์ฒด๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๊ทธ๋’ค ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๋ฉด

์ž ๋‘˜๋‹ค ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ˆ ํŽธํ•œ ๋ฐฉ๋ฒ•์„ ์“ฐ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์™„์„ฑ๋œ ์ „์ฒด ์ฝ”๋“œ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ธธ๊ธด ํ•˜์ง€๋งŒ ์™„์„ฑ๋ณธ๋„ ๋ณผ๊นŒ์š”

์™„์„ฑ!

Last updated

Was this helpful?