我怎么知道 websocket 何时将消息发送回我的屏幕? (本机反应)
How can I know when websocket send message back to my screen? (React-Native)
我使用 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 给我发回更多消息)?
感谢帮助!!
以前是自动的。一个 React 组件监听 props 和状态并在其上重新渲染自己。
防止在 props/state 更改时重新渲染的唯一方法是 shouldComponentUpdate
方法,如果它 returns false
,组件将不会更新,并将如果方法 return true
.
我使用 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 给我发回更多消息)?
感谢帮助!!
以前是自动的。一个 React 组件监听 props 和状态并在其上重新渲染自己。
防止在 props/state 更改时重新渲染的唯一方法是 shouldComponentUpdate
方法,如果它 returns false
,组件将不会更新,并将如果方法 return true
.