Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feat] Toast 메시지 개발 방식 변경 #11

Open
wjdwl002 opened this issue Feb 18, 2023 · 0 comments
Open

[Feat] Toast 메시지 개발 방식 변경 #11

wjdwl002 opened this issue Feb 18, 2023 · 0 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@wjdwl002
Copy link
Member

wjdwl002 commented Feb 18, 2023

현재는 아래와 같이 토스트 메시지를 띄울때마다 전역 상태를 업데이트하고, 전역 상태를 감지하면 메시지가 떠오르게 구현되어있음

const Toast = () => {
const [toastObj, setToastObj] = useRecoilState(toastMsgState);
useEffect(() => {
if (toastObj.show)
setTimeout(() => {
setToastObj({ msg: "", show: false });
console.log(toastObj.show);
}, 2000);
}, [toastObj.show]);
return (
<ToastDiv className="toast" style={{ transform: "translate(-50%, -50%)" }}>
{toastObj.show && (
<AlertDiv className="alert alert-info">
<div>{toastObj.msg}</div>
</AlertDiv>
)}
</ToastDiv>
);
};

이 방식의 문제점은 다음과 같음

  • 토스트 메시지를 짧은 시간 내 여러번 띄우려할때 부드럽게 메시지간 전환이 어려움
  • setTimeout 으로 관리하는 방식은 이상 행동을 유발할 수 있음

따라서, 해당 로직을
메시지 버튼을 누를때마다 함수를 실행시키고, 이에 따라 동적으로 컴포넌트를 만들었다가 destroy 하는 방식으로 변경하고자함

@wjdwl002 wjdwl002 changed the title [Feat] Toast 메시지 개발 방식 변경ㅇ [Feat] Toast 메시지 개발 방식 변경 Feb 18, 2023
@wjdwl002 wjdwl002 added good first issue Good for newcomers enhancement New feature or request labels Mar 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant