첫 조회 동안 계속 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 { useRecoilValue } from 'recoil';
|
||||||
import { AuthModal } from '../components/common';
|
import { AuthModal } from '../components/common';
|
||||||
import { authList } from '../store/authList';
|
import { authList } from '../store/authList';
|
||||||
@@ -81,10 +81,20 @@ export const withAuth = (requiredAuth) => (WrappedComponent) => {
|
|||||||
|
|
||||||
export const useTable = (tableData = [], options = {mode: 'multi'}) => {
|
export const useTable = (tableData = [], options = {mode: 'multi'}) => {
|
||||||
const [selectedRows, setSelectedRows] = useState([]);
|
const [selectedRows, setSelectedRows] = useState([]);
|
||||||
|
const tableDataRef = useRef(tableData);
|
||||||
|
|
||||||
// tableData가 변경될 때 선택된 행 초기화
|
// tableData가 변경될 때 선택된 행 초기화
|
||||||
useEffect(() => {
|
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]);
|
}, [tableData]);
|
||||||
|
|
||||||
// 단일 행 선택/해제
|
// 단일 행 선택/해제
|
||||||
|
|||||||
Reference in New Issue
Block a user