我正试图在socket.on
的回调函数中更新我的状态。我试图在一个数组中收集所有消息,然而,spread运算符不起作用,因此,它只是更新到最后一个值(第一个元素(。
CCD_ 2仅输出更新的第一元素。可能是什么问题?
感谢
const [messageReceived, setMessageReceived] = useState([]);
useEffect(() => {
socket.on('receive_message', (data) => {
console.log(data);
setMessageReceived([...messageReceived, data.message]);
setIsSent(false);
});
}, [isSent]);
您正在useEffect
中使用套接字函数,该函数仅在isSent
状态更改时触发,请检查代码中isSent
状态是否正确更改。