์ํ ๊ด๋ฆฌ ์ธํ
ํ๊ธฐ
ํ๋ก์ ํธ ์ ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋ ์ผ๊ธฐ ๋ฐ์ดํฐ state ๊ด๋ฆฌ ๋ก์ง ์์ฑํ๊ธฐ
ํ๋ก์ ํธ state context ์ธํ
ํ๊ธฐ
์ผ๊ธฐ ๋ฐ์ดํฐ state๋ฅผ ๊ณต๊ธํ context๋ฅผ ์์ฑํ๊ณ provider๋ก ๊ณต๊ธํ๊ธฐ
ํ๋ก์ ํธ dispatch context ์ธํ
ํ๊ธฐ
์ผ๊ธฐ ๋ฐ์ดํฐ state์ dispatch ํจ์๋ค์ ๊ณต๊ธํ context๋ฅผ ์์ฑํ๊ณ provider๋ก ๊ณต๊ธํ๊ธฐ
[emotion.js]
์ผ๊ธฐ ๊ด๋ฆฌ ์คํ ์ดํธ๋ฅผ ์์ฑํ์
const [data,dispatch] = useReducer(reducer,[])
dataId ๋ฅผ useRef ๋ก 0์ ์ ๋ ฅํจ์ผ๋ก์จ ๋ฐ์ดํฐ ์์ด๋๋ก ์ฌ์ฉ
onCREATE ์์ฑ์ date ๊น์ง ๋ฐ๋ ์ด์ ๋ ์ธ์ ์์ฑํ๋์ง๊น์ง ๋ฐ์๊ฒ์ด๊ธฐ ๋๋ฌธ
onRemove ๋ targetId ๋ฅผ ๋ฐ์์ ์ด๋ค ์์ด๋์ ์ผ๊ธฐ๋ฅผ ์ญ์ ํ ๊ฒ์ธ์ง ๊ฒฐ์
onEdit targetId, content, data, emotion ๋ค ๋ฐ์์์ผ ํ๋ค -> ์์ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ
๋ง๋ data state ๋ฅผ ์ปดํฌ๋ํธ ์ ์ญ์ ๊ณต๊ธํด๋ณด์
export const DiaryStateContext = React.createContext()
์ปดํฌ๋ํธ ์ ์ฒด๋ฅผ provider ๋ก ๊ฐ์ธ์ฃผ๊ณ value ๋ data ๋ฅผ ์ ๊ณต
๋ง๋ ํจ์๋ค์ ๊ณต๊ธํด์ฃผ์
export const DiaryDispatchContext = React.createContext()
Provider ๋ก ๊ฐ์ธ์ฃผ๊ณ value ๋ ๋ง๋ ํจ์๋ค์ ์ ๊ณต (onCreate, onEdit, onRemove);
์ถ์ฒ
ํ์
๋ฆฌ์กํธ