【发布时间】:2021-01-07 14:26:35
【问题描述】:
我正在使用一个 React 应用程序,它以以下方式连接到 websocket。它使用 React Hooks 来存储数据流。它看起来像这样:
反应钩子:
const [socketStream, setSocketStream] = useState("");
WebSocket 连接:
const token = getToken();
setSocketStream(Registering socket');
const socket = io(`API`, {
query: { token },
transports: ['websocket'],
})
socket.on('connect', () => {
setSocketStream("connected")
})
let time = 1
socket.on('data', (body) => {
socket.emit('confirm', body.time)
const data = body.data
const error = data.error
setSocketStream(`\nResponse #${time} from socket. Message: ${data || error}`);
time++
if (error) {
console.log(`\nError from socket: ${error}`)
socket.close()
}
if(data === 'Finished build')
socket.close()
})
}, 3000)
我想做的是在我的组件中显示数据流。比如:
<p>{socketStream}<p>
但是钩子没有更新值。有没有办法做到这一点?
提前致谢!
【问题讨论】:
标签: javascript html reactjs websocket react-hooks