SocketIO不随useEffect发出

时间:2019-11-18 13:32:40

标签: reactjs websocket socket.io

我想在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>
        );
      }

感谢您的支持!谢谢...

0 个答案:

没有答案