첫 조회 동안 계속 useEffect가 도는현상으로 수정

This commit is contained in:
2025-02-26 22:27:59 +09:00
parent 4bc8b34c26
commit 24e09a65bc

View File

@@ -1,4 +1,4 @@
import { useCallback, useEffect, useState } from 'react';
import { useCallback, useEffect, useRef, useState } from 'react';
import { useRecoilValue } from 'recoil';
import { AuthModal } from '../components/common';
import { authList } from '../store/authList';
@@ -81,10 +81,20 @@ export const withAuth = (requiredAuth) => (WrappedComponent) => {
export const useTable = (tableData = [], options = {mode: 'multi'}) => {
const [selectedRows, setSelectedRows] = useState([]);
const tableDataRef = useRef(tableData);
// tableData가 변경될 때 선택된 행 초기화
useEffect(() => {
setSelectedRows([]);
const hasDataChanged =
tableData.length !== tableDataRef.current.length ||
tableData.some((item, index) =>
tableDataRef.current[index]?.id !== item.id
);
if (hasDataChanged) {
setSelectedRows([]);
tableDataRef.current = tableData;
}
}, [tableData]);
// 단일 행 선택/해제