ํ์ผ์ ๋ถ๋ฆฌํด ๊ด๋ฆฌํ๋ ๊ฒ์ ํ์ ๊ณผ ์ ์ง๋ณด์์ ์์ด ์ ๋ง ์ค์ํ ์์ ์ด๋ค!
ํ๋ก์ ํธ ๋์์ธ์ ์์ ์ฌํญ์ด ์๊ธฐ๋ฉด styles ํ์ผ๋ก,
api ์์ ์ฌํญ์ด ์๊ฒผ์ ๊ฒฝ์ฐ์๋ queriesํ์ผ์ ํ์ธํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์์ ์ด ์ข ๋ ์ฉ์ดํ๋ค
ํด๋์ ํ์ผ ์ด๋ฆ์ ํ์ฌ๋ง๋ค ๋ค๋ฅด๋ฉฐ
๊ณตํต์ ์ผ๋ก ์ฐ์ด๋ ํจ์๋ฅผ ํ ๊ณณ์ ์ ์ฅํ์ฌ ํ์ ํ๋ ์ฌ๋๋ค๊ณผ ํจ๊ป ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด ํจ์๋ฅผ ์ฌ๋ฌ ๋ฒ ๋ง๋๋ ๊ฒ์ด ์๋๋ผ, ํ ๋ฒ ๋ง๋ค์ด ๋๊ณ Import๋ก ๊ฐ์ ธ์ค๋ฉด ๋๋ ๊ฒ!!โ ๋ ์ง import ์์
์๋ฅผ ๋ค์ด ํด๋น ํจ์๋ฅผ ๋ณต์ฌํด 20๊ฐ์ ํ์ด์ง์์ ์ฌ์ฉํ๊ณ ์๋ ๋ ์ง ํํ ํจ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด์
๋์์ธ ์์ ์ด ํ์ํ๊ฑฐ๋ ํน์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ผ๋ก ์ธํด
๊ธฐ์กด์ โ๋ ๋, ์, ์ผ'๋ก ํ๊ธฐํ๋ ๊ฒ์ ->โ์, ์ผ'๋ง
ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ฒ๋ ์์ ์ ํด์ผ๋๋ ์ํฉ์ด๋ผ๋ฉด,
20๊ฐ์ ํ์ด์ง๋ฅผ ์ฐพ์ ํ๋ํ๋ ๋ค ๋ฐ๊ฟ์ฃผ์ด์ผ ํ๋ค.
ํ์ง๋ง, libraries ์์ ๋ฐ๋ก ๋ ์ง ํํ ํจ์๋ฅผ ๋ง๋ค์ด ๋๊ฒ๋๋ฉด,
์ฌ์ฉํ๋ ํ์ด์ง๋ง๋ค Import๋ฅผ ํ์ฌ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ง๊ณ
ํด๋น ํด๋์์ ํ๋์ ์ฝ๋๋ง ์์ ์ ํ๋ค๋ฉด,
importํ 20๊ฐ์ ํ์ด์ง๊ฐ ํ๋ฒ์ ์์ ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.-> ๊ฒ์ํ ์์ธํ์ด์ง์ ๊ฒ์ํ๋ชฉ๋กํ์ด์ง์ ๊ฐ๊ฐ utilsํด๋์์ ๋ง๋ค์ด ๋์ getDateํจ์๋ฅผ importํ์ฌ ์ฌ์ฉํจ.
ํ๋์ ํ์ด์ง๋ฅผ ์ปดํฌ๋ํธ๋ก ๋๋์ด์ฃผ๋ ์ด์ ?
์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๊ธฐ ๋๋ฌธ์!โ ๊ฒ์ํ ์ ๋ชฉ import ํด์ค๊ธฐ
-> ๋ฑ๋ก ์ปดํฌ๋ํธํ์ด์ง ๋ฐ๋ก ์์ ์ปดํฌ๋ํธํ์ด์ง ๋ฐ๋ก ์์ผ๋ ์๋ก์ด ์ปดํฌ๋ํธํ์ด์ง๋ฅผ ๋ง๋ค์ด, ์ ๋ชฉ๊ณผ ๋ฒํผ์ด๋ฆ์ ๋ฐ๊ฟ์ฃผ๊ธฐ ์ํด import ํด์จ๋ค.
๊ธ ์ ๋ชฉ์๋ props.qqq๋ผ๋ ์ด๋ฆ์ผ๋ก ์ง์ ๋์๊ณ
๊ฐ ํ์ด์ง์๋ ๋ฑ๋กํ์ด์ง์ ๊ฒฝ์ฐ qqq="๋ฑ๋ก"
์์ ์ ๊ฒฝ์ฐ qqq="์์ " ๋์ด ์์.
ํ์ง๋ง ์ด๋ฐ์์ผ๋ก๋ ์ค๋ฌด์ ์ฉ์ดํ์ง ์์
๋ฐ๋ผ์ ๋ถ๋ฆฐ๊ฐ๊ณผ ์ผํญ์ฐ์ฐ์๋ฅผ ํ์ฉํด ๋ฐ๊ฟ์ค๋คโ๏ธ
->์ปดํฌ๋ํธ์์ isEdit์ boolean ํ์ ์ ๋ฐ๋ผ ๋ฑ๋ก๊ณผ ์์ ์ด ๋์ค๊ฒ ํด์ค.
<์ฌ๋ฌ๊ฐ์ props์ ์ฉํ๋ ๋ฐฉ๋ฒ>
1. ๊ฐ์ฒด๋ก ๋ฌถ์ด ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ฌ์ฉ
2.
-> ๋๋ฒ์งธ๋ฐฉ๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ถ์ฒํ๋ ๋ฐฉ์์ด ์๋(ํ์ ์คํฌ๋ฆฝํธ๋ ๊ด์ฐฎ์.)
์์ ํ๊ธฐ๋ ๊ธฐ์กด์ ๊ฐ(ํน์ ๊ฒ์๋ฌผ)์ ์์ ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด๊ฐ์ด ๋จ์์์ด์ผ ํ๊ณ , ํด๋น๊ฒ์๋ฌผ์ id๋ก ๋ค์ด๋๋ฏน ๋ผ์ฐํ ์ ํด์ค์ผ ํ๋คโ๏ธ
โ defaultValue์ state
: ์ธํํ๊ทธ์ ์์ฑ ์ค ํ๋๋ก, defaultValue์ ๊ธฐ์กด๊ฐ์ ๋ฃ์ด๋๋ฉด ์์ ํ์ด์ง์ ์ธํ์ ๋ด๊ฐ ์ ์๋ ๊ธ์ ๋ฐ๋ ค์ฌ ์ ์๋ค.
ํ์ง๋ง ๋ฌธ์ ๋ defaultValue์ ๊ธฐ์กด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ฆฌ๊ณ ์ค๋ ๊ณผ์ ์์ fetch๋ฅผ ํด์ฃผ์ด์ผํ๋๋ฐ ,
ํด๋น ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฌ์ฉ ํ๊ธฐ ๋๋ฌธ์ container์์ fetch ๋ฅผ ํ๊ฒ๋๋ฉด ๋ฑ๋ก๊ณผ ์์ ๋ชจ๋์๊ฒ ์ ์ฉ์ด ๋๋ค.
ํ์ง๋ง ์์ ์๋ง ์ ์ฉํด์ผ ํ๋ฏ๋ก fetch๋ page ์ปดํฌ๋ํธ์์ํ๊ณ , ํด๋น data๋ฅผ props๋ก ๋๊ธฐ๋ฉด ๋๋ค.โ defaultValue๋ฅผ ๋ฃ์ด๋ ์๊ธฐ๋ ๋ค์ ๋ฌธ์ ์ โ
์์ ํ์ง ์์ ๋ถ๋ถ์๋ defaultValue๋ก ๋ค์ด๊ฐ๋ ๊ฒ์ด ์๋
๋น ๊ฐ์ด ๋ค์ด๊ฐ๋๋ฐ ์ด๋ state์ ์ด๊น๊ฐ ๋๋ฌธ์ด๋ค.
defaultValue๋ ์ค์ state๊ฐ ์๋ input์ ์์ฑ์ด๊ธฐ ๋๋ฌธ์ ์ค์ ๋์ ๋ณด์ด๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ state์ ์ ์ฅ๋์ง ์๋๋ค.โ defaultValue๋ฅผ state์ ์ด๊น๊ฐ์ผ๋ก ๋ฃ๋๋ค๋ฉดโ
-> input์ฐฝ์๋ง defaultValue์ฃผ์ง ๋ง๊ณ state์๋ ์ด๊ธฐ๊ฐ์ผ๋ก ๋ฃ์ด์ฃผ๋ ๋ฐฉ๋ฒ์ ๋ฌธ์ ์ ์,
1500์๋ผ๋ฉด 1500์๊ฐ ๋ค์ ์คํ ์ดํธ์ ๋ค์ด๊ฐ๊ณ
์ ๋ชฉ๋ง ์ ๋ ฅํด๋ 1500์๊ฐ ๋ฐฑ์ค๋๋ก ๋์๊ฐ.
๋ง์ฝ ์ด ์ํฉ์ 100๋ง๋ช ์ด ํ๋ค๋ฉด?? ๊ต์ฅํ ๋นํจ์จ์ !!!
๋ฐ๋ผ์ ๋ฐฑ์๋์ ์์ ํ๊ฒ๋ง ๋ ์๊ฐ๋๋ก ํด์ผํจ.
๋ฎคํ ์ด์ ์ ์ฌ์ฉํ์!
์์ ํ๊ธฐ(์๋ฃ)๋ฒํผ ๋๋ ์ ๋ ์กฐ๊ฑด๋ฌธ ๊ฒ์ฌ๋ฅผ ํด์ ๋ฐ๋์ด ์๋ ๊ฒ๋ค๋ง ๋ฎคํ ์ด์ ๋ณด๋ด๊ณ ๋นผ๋ฒ๋ฆฌ์!
// ๋ฎคํ ์ด์ ์ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ๋ณด๋ด์ฃผ๊ธฐ const onClickUpdate = async () => { const myVariables = { number: Number(router.query.number), }; //writer๊ฐ ๋น์ด์์ง ์์ผ๋ฉด writer์ถ๊ฐ(๋ฌด์์ธ๊ฐ๋ฅผ ์ ๋ ฅํ๋ค๋ฉด) if (writer) myVariables.writer = writer; if (title) myVariables.title = title; if (contents) myVariables.contents = contents; const result = await updateBoard({ variables: myVariables, }); };
- ์ด๋ค ๊ฒ์๊ธ์ ์์ ํ ๊ฑด์ง ๋๋ฒ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ myVariables๋ผ๋ {๋น ๊ฐ์ฒด}๋ฅผ ์ ์ธํ์ฌ ๊ผญ ๋ค์ด๊ฐ์ผ ํ๋ number๋ ๋ฏธ๋ฆฌ ๋ฃ์ด๋๋ค.
- ์กฐ๊ฑด๋ฌธ์ ์ด์ฉํด state๊ฐ ๋น ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์๋ง ๊ฐ์ฒด์ key์ value๋ฅผ ์ถ๊ฐํด์ค๋ค.
- ๊ทธ๋ ๊ฒ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ variables์ ๋ฃ์ด์ ๋ฎคํ ์ด์ ์ ๋ ๋ ค์ค๋ค(API์์ฒญ)
-> writer์ contents ๋น๋ฌธ์๋๊น ์คํ์๋จ
์์ ํ ๋์๋ผ๋ ์๋ก์ด ์์ ๊ฐ์ด ์์ผ๋๊น ํ์ดํ์ ๋ค์ด๊ฐ.
variables์๋ number๋ title"์์ ํ ๋์"๊ฐ ๋ค์ด์๋ค.
์๋ result์ variables๊ฐ ๋ค์ด๊ฐ ์์.
<ํด๊ฒฐ๋ฐฉ๋ฒ ์ ๋ฆฌโ๏ธ>
1. defaultValue๋ฅผ state์ ์ด๊น๊ฐ์ผ๋ก ๋ฃ๋ ๊ฒ(๋นํจ์จ์ )
2. ๋ฎคํ ์ด์ ํ ๋ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ๋ฐฑ์๋์ ๋ณด๋ด์ค๋ค.(ํจ์จ์ )
-> ๋ ์ค ์ข์ ๋ฐฉ๋ฒ์ 2๋ฒ!
- ์์ /๋ฑ๋ก - ๋๊ธฐ์คํ,
์์ธ๋ณด๊ธฐ๋ ๋น๋๊ธฐ!
์ด์ ? ์์ฑ๋ ๊ธ์ number๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ค.- el.createAt์ ๋ฐฑ์๋์์ ๋ฐ์์ฌ ๋ ์ง api์ด๋ค.
getDateํจ์๋ก ์ฒ๋ฆฌํด์ค.- onChange๋ ์๋ฅผ๋ค์ด !๋ง ์ถ๊ฐ๋ก ์ ๋ ฅํ๋ฉด !๋ง ๊ฐ์ ธ์ค๋ ๊ฒ ์๋. ๊ทธ ๋ฌธ์ฅ ์ ์ฒด๋ฅผ ๊ฐ์ ธ์จ๋ค.