์ 3๊ฐ์ง๊ฐ ๋ด๊ฐ ํ์ฌ ๋ง๋ค๊ณ ์๋ ํ๋ก์ธ์ค์ธ๋ฐ, 1,2๋ฒ์ ์ ์๋์ด ๋๋ค. ํ์ง๋ง re-rendering์ด ๋์ง ์๋ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ฐ์ ๋ฐ์ดํฐ๋ฅผ ์๋ก ๋ฐ๊ธฐ ์ํด ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์นจํ๋ ๊ฒ์ ์ฌ์ฉ์๋ก ํ์ฌ๊ธ ๋ง์ ๋ถํธํจ
์ ์ผ๊ธฐํ๋ค. ๊ทธ๋์ ์ ์ธํ๊ณ 2๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ ํํ๋ค.
// index.tsx
api.get(apply)
<ApplyProcess/>
applyStudys.map((applyStudy)=>{
<ApplyStudy applyStudy={applyStudy} />
}
--------------------------------------------
//ApplyStudy.tsx
const ApplyStudy = () => {
<ApplyStudyList>
<ApplyTitle>
</ApplyTitle
<InnerContent/>
</ApplyStudyList>
}
function InnerContent(){
๋ค๋ฅธ ์ํ๋ค
<show && <CancleFunction applyStudy = {applyStudy}/>
}
function CancleFunction(){
<๋ฒํผ/>
<ํ์
/>
}
ํ์ฌ ๋๋ต์ ์ธ ๋์ ์ฝ๋์ด๋ค. ๊ทธ๋ ๋ค๋ฉด 2๋ฒ ํด๊ฒฐ์ฑ ์ ํ๊ธฐ ์ํด์๋ ApplyStudy.tsx์ function CancleFunction์ ์๋ ํ์ ์์ ๋์ ๋ฒํผ์ ๋๋ ์ ๋ index.tsx์ api.get์ ๋ค์ ์คํํด์ค์ผ ํ๋ค.
์ด๋ฅผ ์ํด ๋๋ ์ฒ์ ํ์ ์์ ๋์ ๋ฒํผ์ ๋๋ ์ ๋ canclefunction์์ api.get์ ์คํ์์ผฐ๋ค. ๋น์ฐํ๊ฒ๋ re-rendering์ ์คํ๋์ง ์์๋ค. ์๋ํ๋ฉด ๋ถ๋ชจ์์ ๋ด๋ ค์จ props๋ฅผ ์์์์ ๋ค์ getํ๋ค๊ณ ํด์ redering์ด ๋๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ๋๋ ์๊ฐ์ ํด๋ดค๋ค. ์ด๋ป๊ฒํ๋ฉด ๋ถ๋ชจ์์ ๋์ ๋ฒํผ์ ๋๋ ๋ค๋ ๊ฒ์ ์ธ์งํ๊ณ ๋ค์ ๋ ๋๋งํ ์ ์์๊น?
=> ๊ณ ๋ฏผ์ ๋ํ ๋ต์ ์๊ฐํ๋๋ฐ ์๊ฐ์ด ๊ฑธ๋ ธ์ง๋ง, ๋ง์ฝ ApplyStudy์ refresh ํจ์
๋ฅผ ๋ด๋ ค์ฃผ๊ณ ํด๋น ํจ์๋ฅผ ๋์ ๋ฒํผ์ ๋๋ ์ ๋ ์คํ์ํค๋ฉด ๋์ง ์์๊น?๋ผ๋ ์๊ฐ์ ํ์๊ณ , ํด๋น ์๊ฐ์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
refresh ์ฝ๋๋ ์ด๋ ๋ค
const refreshStudyStatus = async () => {
const refreshStudy = await api.getApplyStudy();
setApplyStudys(refreshStudy);
};
ํด๋น ํจ์๋ฅผ ํตํด์ applyStudy๋ฅผ ๊ฐ์ ธ์์ setState๋ฅผ ํตํด ๋ค์ ๋๋๋งํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
ํ์ง๋ง ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ฐ, ํ์ฌ ํด๊ฒฐ์ด ๋ ๋ถ๋ถ์ MSW์ ์ฌ์ฉํ๊ณ ์๋ local ํ๊ฒฝ์์๋ ํด๊ฒฐ์ด ๋์ง๋ง, ์๊ทธ๋ฌ๋์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ ๋ฐฐํฌ๋ฅผ ํ ๋ค, ๋ค์ ํ
์คํธ๋ฅผ ์งํํด ๋ดค๋๋ฐ ๋๊ฐ์ด ๋ ๋๋ง์ด ๋ค์ ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด ๋ถ๋ถ์ ๋ค์ ์ฃผ์ ํด๊ฒฐํด ๋ณผ ์๊ฐ์ด๋ค.