const [deleteIdx, setDeleteIdx] = useState<string>();
const handleDeleteGroup = async (groupId: number) => {
setDeleteIdx(groupId.toString());
};
useEffect(() => {
if (deleteIdx) {
deleteRow();
}
}, [deleteIdx]);
const deleteRow = async () => {
showDialog({
content: (
<Box>
<Box>해당 그룹을 삭제하시겠습니까?</Box>
<Box>삭제 시 설정 된 고객사 그룹 설정은 삭제되지 않습니다.</Box>
</Box>
),
onConfirm: async () => {
await deleteGroup();
enqueueSnackbar('그룹이 삭제되었습니다.', { variant: 'success' });
refreshGroups();
}
});
};
원래는 useEffect 문 자체에 async/await를 거는 방식도 있는 걸로 알았는데 말이죠?
꿈에서 봤나봅니다...
원래 이런 식으로 useEffect 구문 안에서 함수를 따로 정의해서 돌려야 한다고 했다.
내가 한 방식은 그냥 바로 위에 정의해서 돌려버린 것일 뿐 크게 차이는 없는 듯.
다 같이 모여있는 게 가독성을 위해서는 더 나을 것 같기도 하지만 또 어떤 측면에서는... useEffect 구문이 돌아갈 때마다 사용하지도 않는 함수가 계속 재정의 되어야 할 때도 있으니까 낭비이기도 할지도...
세상에 정답은 없네... 절레절레...
useEffect(() => {
const fetchData = async () => {
const data = await getdata();
setUser(data);
};
fetchData();
}, []);