我想在React for SocketIO中使用 Function Component 。
但是我遇到了useEffect的问题,而componentDidMount没有。
目前,如果发出“ recv-text”事件,它是完全随机的。因为我使用记录器服务器端,所以实际上可以看到在大多数情况下没有发出“ recv-text”事件。这发生在大约10例中的1例中,所以我猜想,正在发生某种竞赛情况。
另一方面,“编辑”事件按预期运行。
function Main() {
const [text, setText] = useState("");
const socket = io();
const handleInputChange = event => {
setText(event.target.value);
socket.emit("edit", event.target.value);
};
useEffect(() => {
socket.on("update", text => setText(text));
socket.on("connect", () => socket.emit("recv-text"));
}, []);
return (
<div>
<textarea
rows="10"
cols="80"
value={text}
onChange={handleInputChange}
/>
</div>
);
}
感谢您的支持!谢谢...