我怎么知道websocket何时将消息发送回我的屏幕? (阵营-母语)

时间:2018-04-13 03:40:37

标签: javascript react-native websocket react-native-android react-native-ios

我使用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);
            };

我的状态更新后如何让我的屏幕重新渲染(因为websockt会给我发回更多消息)?

感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

以前是自动的。反应组件会侦听道具和状态,并在其上重新呈现。

防止对道具/状态更改进行重新渲染的唯一方法是shouldComponentUpdate方法,如果它返回false,则组件将不会更新,如果方法返回{{1} }。