Javascript 我如何知道websocket何时将消息发送回我的屏幕?(本地反应)

Javascript 我如何知道websocket何时将消息发送回我的屏幕?(本地反应),javascript,react-native,websocket,react-native-android,react-native-ios,Javascript,React Native,Websocket,React Native Android,React Native Ios,我使用websocket发送请求,并等待它将消息发送回我,以便我可以重新呈现我的视图。但我的问题是如何知道websocket何时向我发送消息(它将向我发送超过1次的消息),以及如何更新我的状态以便重新呈现我的视图 以下是初始化我的状态的代码: constructor(props) { super(props); this.state={ result:[],

我使用websocket发送请求,并等待它将消息发送回我,以便我可以重新呈现我的视图。但我的问题是如何知道websocket何时向我发送消息(它将向我发送超过1次的消息),以及如何更新我的状态以便重新呈现我的视图

以下是初始化我的状态的代码:

               constructor(props) {
               super(props);
               this.state={
                 result:[],
                }
以下是我的websocket代码:

            let ws = new WebSocket('xxx');

            ws.onopen = function(evt) { 
                console.log("Connection open ..."); 
                ws.send(JSON.stringify({
                    'id': 100,
                    'g': r1,
                }));
            };

            ws.onmessage = function(evt) 
            {                  
              let msg = JSON.parse(evt.data);                  
              this.setState({
                result: msg,
              })

            };

            ws.onclose = function(evt) {
              console.log("Connection closed.");
              console.log(evt.code, evt.reason);
            };

            ws.onerror = function(evt) {
              console.log(evt.message);
            };
我的状态更新后(因为WebSock不会向我发送更多消息),如何让屏幕重新呈现


谢谢你的帮助

它过去是自动的。react组件会监听道具和状态,并在其上重新渲染自身

防止在道具/状态更改上重新渲染的唯一方法是
shouldComponentUpdate
方法,如果它返回
false
,组件将不会得到更新,如果该方法返回
true
,组件将得到更新