반응형
Problem
// 정렬된 랭킹 데이터 - 메모이제이션 적용
const rankingItems = useMemo(() => {
if (!userRankingData || userRankingData.length === 0) return [];
let sortedItems = [...userRankingData];
console.log("sortedItems:", sortedItems);
switch (sortBy) {
case 'score':
return sortedItems.sort((a, b) => b.score - a.score);
default:
return sortedItems;
}
}, [userRankingData, sortBy]);
// 데이터 프리페칭
useEffect(() => {
console.log("fetching ...")
prefetchRankingData();
}, []);
Why?
- 코드의 목적
- prefetchingRankingData → rankingItems 최신화
- 렌더링 이후에 useEffect가 호출이 되기 때문에 useMemo가 먼저 호출되어 fetching이 제대로 되지 않는다.
Solve
prefecthRankingData() 에서 accounts 를 불러오는 함수가 잘못 설정 되어있었다.,,
지우고 refetch 함수를 제작해서 해결
반응형
'Web > React' 카테고리의 다른 글
[React] useRef, useMemo, useCallback (1) | 2024.12.13 |
---|---|
React 번들링 (1) | 2024.12.01 |
React의 특징 (2) | 2024.11.17 |