我的react组件正在通过 websocket 从服务器接收消息。当我尝试使用 useState() 更新状态时,套接字会重复。
如果我这样做...
import React, {useState} from 'react'
export default () => {
let[message, setMessage] = useState()
let ws = new WebSocket("ws://blah");
ws.onmessage = (e) => {
let obj = JSON.parse(e.data);
// event name
console.log(obj.event);
// event data
console.log(obj.value);
// setMessage(obj.value)
ws.close
}
return <div>
{message}
</div>
}
然后控制台按预期单独显示每条消息
但是如果我回评论,setMessage(object.value)
那么每条消息的所有连接都会重复
setMessage() 以某种方式导致连接累积