对象在控制台中打印,但不能使用它设置状态-ReactJS

时间:2018-07-10 01:26:13

标签: javascript reactjs object

我正在向API请求一个日期范围内的加密货币价格并将结果存储在数组中。目标是在页面加载时用这些价格填充折线图,但是我无法弄清楚为什么pricesArr会在我console.log时打印,但是如果我尝试{{1} },然后我得到一个this.setState({dataArr: pricesArr})

TypeError: Cannot read property 'setState' of undefined.中的对象在控制台中显示,如下所示:

pricesArr

1 个答案:

答案 0 :(得分:1)

奇怪的是您的this未定义。试试这个。

  getData = () => {

    var url = 'https://min-api.cryptocompare.com/data/pricehistorical?fsym=BTC&tsyms=USD,EUR&ts='

    let pricesArr = []
    for (let i=1; i <= 30; i++) {
      const num = i.toString()
      const date = new Date('2018.06.' + num)
      const unixTimestamp = date / 1000
      const api_url = url + unixTimestamp

      if (i % 5 === 0 || i === 1) {
        axios.get(api_url)
        .then(res => {
            var obj = res.data['BTC']
            pricesArr.push(obj)
        })
      }
    }

    this.setState({dataArr: pricesArr})
  }