React Native获取动态数据

时间:2019-11-04 11:07:11

标签: reactjs react-native

我的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响应本机?

2 个答案:

答案 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