2. 리액트 에러. Maximum update depth exceeded


const { handleAllCheckboxChange, handleCheckboxChange } = useMultiCheckbox({

initialCheckedItemId: selectedItem,

items: order?.items ?? [],

setCheckedItemIds,

});

// useMultiCheckbox 훅 내부 useEffect
useEffect(() => {

if (!initialCheckedItemId) {

return;

}

  

const newCheckedItemIds = new Set<string>();

  

items.forEach((item) => {

if (item._id === initialCheckedItemId) {

newCheckedItemIds.add(item._id);

}

});

  

setCheckedItemIds(newCheckedItemIds);

}, [items, initialCheckedItemId]);
const confirmableItems = useMemo(() => {

if (!order) {

return [];

}

  

return order.items.filter((item) => item.status === LINE_ITEM_STATUS.fulfillmentArrived.id);

}, [order]);

  

const [checkedItemIds, setCheckedItemIds] = useState(new Set<string>());

  

const { handleAllCheckboxChange, handleCheckboxChange } = useMultiCheckbox({

initialCheckedItemId: selectedItem,

items: confirmableItems,

setCheckedItemIds,

});