refactor search area - boostcampwm-2022/web33-Mildo GitHub Wiki
โ๏ธ ๋ถ๋ฐฐ๋ ์ด์
- ์ง๋ ํด๋ฆญ์ ์ฐ๊ด๊ฒ์์ด ๋ฆฌ์คํธ ๋ซ๊ธฐ #80
- ๊ฒ์ API ํธ์ถ ์ต์ ํ ์์ #82
๐ฉ ๊ตฌํ ๋ชฉํ
- ์ง๋ ํด๋ฆญ์ ์ฐ๊ด๊ฒ์์ด ๋ฆฌ์คํธ ๋ซ๊ธฐ
- ๊ฒ์ API ํธ์ถ ์ต์ ํ useDeferredValue ๋์ debounce ์ ์ฉ
๐ ์ธ๋ถ ๋ชฉํ
๐ง Trouble Shooting
const timer = useRef<NodeJS.Timeout | null>(null);
// let timer: NodeJS.Timeout | null = null;
...
if (timer.current) {
clearTimeout(timer.current);
}
timer.current = setTimeout(async () => {
setIsRelatedAreaListOpen(true);
const { data: responseRelatedAreaInfo }: GetRelatedAreaResponseTypes =
await apis.getRelatedAreaInfo(searchAreaName);
setRelatedAreaInfo(responseRelatedAreaInfo);
}, 500);
- timer๋ฅผ ์ปดํฌ๋ํธ ์์ let์ผ๋ก ์ ์ธํ์ฌ ๊ตฌํํ๋ฉด debounce๊ฐ ์ ์ฉ๋์ง ์๋๋ค.
- useRef๋ฅผ ํตํด ์ ์ธํ๋ฉด ์ ๋์ํ๋ค.
๐ธ ๊ธฐํ
- ์ฐ๊ด๊ฒ์์ด ๋ฆฌ์คํธ๋ ๋ชจ๋ฌ์ฐฝ์ผ๋ก ๋ด๋ ๋ ๊ฒ ๊ฐ์ Modal ์ปดํฌ๋ํธ๋ฅผ ์ฌํ์ฉํด๋ณด๋ ค ํ์ง๋ง ํฌ๊ธฐ