我的api中有每秒变化的数据,我应该使用setInterval动态获取它以响应本机屏幕和即时消息 我写了一个发送请求并每秒获取数据的函数,我应该刷新此函数,并且确实使用了setInterval,但是我不确定这是否健康?我也无法解决这个问题,因为我得到一个错误:
Possible Unhandled Promise Rejection (id: 7):
TypeError: _this2.setState is not a function. (In '_this2.setState({
kalanzaman: res.data
})', '_this2.setState' is undefined)
我的func及其命名方式:
dynamically() {
// console.log("bom")
axios.get(`http://localhost:5000/kalanzaman`)
.then(res => {
this.setState({ kalanzaman: res.data })
})
}
。
setInterval(this.dynamically, 1000)
我应该采用哪种方式获取动态数据以从api响应本机?
答案 0 :(得分:1)
可以使用Websocket代替Http请求。 这是用户浏览器和服务器之间的双向交互式通信会话。 例如:看看Socket.IO
答案 1 :(得分:0)
如果这样写也许会更好:
setInterval(() => {
dynamically() {
// console.log("bom")
axios.get(`http://localhost:5000/kalanzaman`)
.then(res => {
this.setState({ kalanzaman: res.data })
}).catch((error) => {
alert('Something Error')
})
}
}, 100);
您必须使用cath()捕获错误,并将其放在 componentDidMount
上