我读到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);
});
}, []);