๋ง์ฝ ํน์ ๊ฐ์ ์์ ํ๋ค๋ฉด, ์์ ํ ๊ฐ๋ง ์
๋ฐ์ดํธ ๋์ด์ผ ํ๋ค. ์์ ํ์ง ์์ ๊ธฐ์กด์ ๊ฐ๋ค์ ์
๋ฐ์ดํธ ๋์ง ์๋๋ก ํ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ค. defaultValue
๋ฅผ ์ฌ์ฉํ๋ฉด ์์ ๋ ๋ถ๋ถ๋ง ์
๋ฐ์ดํธ ๋๋๋ก ํ ์ ์๋ค. defaultValue
๋ input ํ๊ทธ์ ์์ฑ ์ค ํ๋์ด๋ค.
ํ์ง๋ง ์ด๋ ๊ฒ ํด์คฌ์์๋ ํน์ ๊ฐ์ ์์ ํ ํ์ ๋ค๋ฅธ ํ์ด์ง๋ก ๋์ด๊ฐ์ ๋ ์์ ํ์ง ์์ ๊ฒ๋ค์ defaultValue๊ฐ ์ญ์ ๋์ด ๋น ๊ฐ์ด ๋ค์ด๊ฐ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
state
์ ์ด๊ธฐ๊ฐ ๋๋ฌธ์ธ๋ฐ, defaultValue๋ ์ค์ state๊ฐ ์๋ input์ ์์ฑ์ด๊ธฐ ๋๋ฌธ์ ํ๋ฉด ์์๋ ๋ํ๋์ง๋ง state
์ ์ ์ฅ๋์ง ์์ ์ฑ๋ก ๋ฐฑ์๋ ์ปดํจํฐ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด 2๊ฐ์ง๊ฐ ์๋ค. ๋จผ์ , input ์ฐฝ์๋ง defaultValue๋ฅผ ์ฃผ์ง ๋ง๊ณ , state
์๋ ์ด๊ธฐ๊ฐ์ผ๋ก ๋ฃ์ด์ฃผ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
ํน์ state์ ์ด๊ธฐ๊ฐ์ ๋ฃ์ง ๋ง๊ณ , '์์ ํ๊ธฐ' ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๊ฒ์ฌํด์ ๊ฐ์ด ๋ฐ๋์ง ์์ ๋ฐ์ดํฐ๋ค์ ๋ฐฑ์๋ ์ปดํจํฐ๋ก ๋ณด๋ด์ง ์๋ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค.
์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๋ฐ๋์ง ์์ ๊ฐ๋ ๋ฐฑ์๋ ์ปดํจํฐ๋ก ๋ณด๋ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ํฐ ๊ฒฝ์ฐ ๋ฐฑ์๋๋ก์ ์ ์ก ์๋๊ฐ ๋๋ ค์ง ์ ๋ฐ์ ์๋ค. ๋ฐ๋ผ์ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ด ํจ์ฌ ํจ์จ์ ์ด๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง mutation์ผ๋ก ๋ณด๋ด์ค ์ ์๋ค!
const onClickUpdate = async () => {
const myVariables = {
number: Number(router.query.number),
};
if (writer) myVariables.writer = writer;
if (title) myVariables.title = title;
if (contents) myVariables.contents = contents;
const result = await updateBoard({
variables: myVariables,
});
};
number์ ๊ฒฝ์ฐ, ๊ผญ ๋ค์ด๊ฐ์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฆฌ myVariables
๊ฐ์ฒด์ ๋ฃ์ด์ฃผ๊ณ , ๋๋จธ์ง๋ ์กฐ๊ฑด๋ฌธ์ ํ์ฉํด์ ํด๋น state๊ฐ ๋น ๊ฐ์ด ์๋ ๋์๋ง key์ value๋ฅผ ์ถ๊ฐํด์ค๋ค.