我正在向API请求一个日期范围内的加密货币价格并将结果存储在数组中。目标是在页面加载时用这些价格填充折线图,但是我无法弄清楚为什么pricesArr
会在我console.log
时打印,但是如果我尝试{{1} },然后我得到一个this.setState({dataArr: pricesArr})
TypeError: Cannot read property 'setState' of undefined.
中的对象在控制台中显示,如下所示:
pricesArr
答案 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})
}