反应setState没有更新状态

时间:2020-09-11 21:44:59

标签: javascript reactjs socket.io

我读到setState是异步的,但是我看不到这种情况,因为我可以在控制台上登录“ particip”。所有其他setState都在工作。我不明白为什么只有setParticipant没有做任何事情。在他开始的时候,我虽然那是因为“参与”是一组对象,但我做错了。后来,我尝试使用简单的字母和数字只是为了查看状态是否会更新。令我惊讶的是,什么也没有发生,而且我坦白不明白为什么。

const [participants, setParticipants] = useState();
useEffect(() => {
  const socket = io(BASE_URL);
  setSocket(socket);
  socket.on("msgToClient", (msg) => {
    setChat((chat) => [...chat, { ...msg }]);
  });
  socket.on("joinedRoom", (particip) => {
    console.log(particip);
    setParticipants(particip);
    console.log(participants);
  });

  socket.on("leftRoom", (particip) => {
    console.log(particip);
    setParticipants(particip);

    console.log(participants);
  });
}, []);

0 个答案:

没有答案