작성
·
179
0
socket.emit('login', 'hello') 해당 부분에서 emit을 계속 찍어내는 문제가 발생하고 있습니다!!
useEffect의 dependenciy의 의존성을 주입 안 하면 emit을 계속 안 찍는데 어떻게 하는게 맞을까요 ??
// 로그인 후 emit을 계속 보낸다.
useEffect(() => {
const helloCallback = (data: any) => {
console.log(data);
};
if (socket && isLoggedIn) {
socket.emit('login', 'hello');
socket.on('hello', helloCallback);
}
return () => {
if (socket) socket.off('hello', helloCallback);
};
}, [isLoggedIn, socket]);
// 로그인 후 한 번만 emit을 보낸다.
useEffect(() => {
const helloCallback = (data: any) => {
console.log(data);
};
if (socket && isLoggedIn) {
socket.emit('login', 'hello');
socket.on('hello', helloCallback);
}
return () => {
if (socket) socket.off('hello', helloCallback);
};
}, []);
아래는 emit을 계속 보내는 log 입니다.
선생님 코드를 복붙 해도 동일한 결과가 반복됩니다.
다른 해결 방법이 있을까요 ?