반응형

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

+ Recent posts