接收到的消息在ReactJ和使用效果中两次显示。告诉我我做错了什么
if (currentMessage !== "") {
const messageData = {
room: room,
author: username,
message: currentMessage,
time:
new Date(Date.now()).getHours() +
":" +
new Date(Date.now()).getMinutes(),
};
await socket.emit("send_message", messageData);
setMessageList((list) => [...list, messageData]);
setCurrentMessage("");
}
};
useEffect(() => {
socket.on("receive_message", (data) => {
setMessageList((list) => [...list, data]);
});
}, [socket]);
在输出中,我在接收方侧两次接收一条消息。 我认为这必须与使用效果钩有关。 请帮忙。
if (currentMessage !== "") {
const messageData = {
room: room,
author: username,
message: currentMessage,
time:
new Date(Date.now()).getHours() +
":" +
new Date(Date.now()).getMinutes(),
};
await socket.emit("send_message", messageData);
setMessageList((list) => [...list, messageData]);
setCurrentMessage("");
}
};
useEffect(() => {
socket.on("receive_message", (data) => {
setMessageList((list) => [...list, data]);
});
}, [socket]);
In the output, I am receiving one message twice in the receiver side.
I have figured this has to be related to useEffect Hook.
Please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在React中启用了严格的模式
那引起了问题。
现在正常工作。
I was having Strict Mode enabled in React
that was causing the problem.
Now its working fine.