첫 조회 동안 계속 useEffect가 도는현상으로 수정
This commit is contained in:
@@ -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]);
|
||||
|
||||
// 단일 행 선택/해제
|
||||
|
||||
Reference in New Issue
Block a user