我正在从网络套接字接收消息,此后我必须更新状态,我已经跳过了先前的问题,并尝试向setState添加回调,但是它似乎仍然不起作用
constructor() {
super();
this.state = {
bus: [5, 6]}
}
render() {
const ws = new WebSocket("ws://-------:5055");
const navigation = this.props.navigation;
const state = this.state;
const props = this.props;
ws.onmessage = (e) => {
this.setState({
bus: e.data
},()=>console.log( state.bus)
);
};
请注意,如果我在控制台上记录接收到的消息,即它确实表明已接收到消息,那么我会发现setState是异步的,但如果我向其添加了回调函数,它应该不起作用
答案 0 :(得分:1)
在此配置中,您将在组件的每个渲染上创建新的websocket连接。您必须将连接移至echo $Otp;
钩子
componentDidMount
这将确保您只有一个连接。