231003 개발일지 TIL - window.location.reload(); 후 antd의 message.success('로그아웃 되었습니다.'); 가 나타나지 않는 현상

The Web On Everything·2023년 10월 3일
0

개발일지

목록 보기
145/274

window.location.reload(); 후 antd의 message.success('로그아웃 되었습니다.'); 가 나타나지 않는 현상

로그아웃 직후 navigate('/')와 window.location.reload();가 실행된다. 이 때문에 페이지가 너무 빨리 새로고침되어 메시지가 표시되기 전에 사라질 수 있다. 임시로 window.location.reload();를 주석 처리하고 테스트해보았다.

   navigate('/');
   // alert('로그아웃 되었습니다.');
   message.success('로그아웃 되었습니다.');
   window.location.reload();

알 수 없지만 alert은 작동이 된다.

그러나 자동으로 네이버 로그인이 되어버리는 현상 때문에 window.location.reload();를 사용해야한다.

window.location.reload();를 사용하면, message.success가 호출된 후에 메시지가 바로 사라지게 되므로 지금처럼 유저가 메시지를 볼 수 없다.

이를 해결하기 위해서 setTimeout 함수를 사용하여 딜레이를 추가하기로 했다.

message.success('로그아웃 되었습니다.');
setTimeout(() => {
    window.location.reload();
}, 1000);  // 1000ms (1초) 후에 새로고침
profile
오늘은 무슨 오류를 만날까?! 널 만나러 가는 길~ LOL

0개의 댓글