У меня есть обработчик событий сокета io, который получает данные каждую секунду. При загрузке страницы, как вызвать componentDidMount или componentDidUpdate в обработчике событий?
Или есть ли другой способ вызова обработчика событий внутри componentDidMount или componentDidUpdate?
Я не знаю, как это сделать связать обработчик событий с жизненным циклом в реаги js (поэтому график будет обновляться каждый раз, когда новые данные поступают в обработчик событий)
constructor(props) {
super(props);
this.state = {
trafficFlow: [],
cameraId: this.props.cameraId,
cameraIp: this.props.cameraIp,
ReceivedDateTime: '',
QueueLength: '',
};
this.globals = new Globals();
this.socketIO = new Socket_IO();
this.socketIO.SubscribeSocket_IO = this.handleSocketIOMessage;
}
handleSocketIOMessage = (eventTitle, message) => {
var self = this;
switch (eventTitle) {
case "trafficFlow":
// console.log("handleSocketIOMessage: eventTitle=" + eventTitle + ", message=" + message);
var trafficFlowParse = JSON.parse(message);
var ReceivedDateTime = new Date(trafficFlowParse.ReceivedDateTime);
var Time = ReceivedDateTime.getHours() + ":" + (ReceivedDateTime.getMinutes()<10?'0':'') + ReceivedDateTime.getMinutes();
//var QueueLength = trafficFlowParse.QueueLength;
trafficFlowParse.ReceivedDateTime = Time;
self.setState({ trafficFlow: trafficFlowParse});
console.log(this.state.trafficFlow);
//self.setState({ Time: trafficFlowParse.Time, QueueLength: trafficFlowParse.QueueLength});
//self.setState({ trafficFlow: Time});
//console.log("Time : " + this.state.trafficFlow);
//console.log("Received Date Time : " + Time);
//console.log("Queue Length : " + QueueLength);
break;
}
};
componentDidMount() {
//this.handleSocketIOMessage();
}
componentDidUpdate() {
}