Мне нужны данные "Ежемесячные временные ряды" в this.state = {stockOne: []}. Однако, поскольку форматирование данных API «Monthly Time Series» не имеет [] вокруг объектов, у меня возникают трудности с доступом к данным. Есть ли способ отформатировать это для доступа к данным и вставить в this.state?
РЕДАКТИРОВАТЬ: я был в состоянии console.log (this.state.stockOne) и (this.state.stockOne ["2020 -02-27 "]) с ответом ниже @ Мохаммед Ашфак. Однако я не могу передать его в StockOne. js с this.props.stockOne, который возвращает пустое [], и this.props.stockOne ["2020-02-27"], возвращая неопределенное значение.
import React from 'react';
import axios from 'axios';
import StockOne from '.././component/StockOne/StockOne.js'
const apiKey = '11111111111111';
class Main extends React.Component {
constructor(props) {
super(props);
this.state={
stockOne: []
};
}
componentDidMount(){
axios.get(`https://www.alphavantage.co/query?function=TIME_SERIES_MONTHLY&symbol=MSFT&apikey=${apiKey}`)
.then(res=>
{this.setState({stockOne:res.data["Monthly Time Series"]},
console.log(res.data["Monthly Time Series"]), /*returns {},{},{},...*/
console.log(res.data),
console.log(this.state.stockOne) /*returns undefined */
)
})
}
render() {
return (
<>
<StockOne stockOne={this.state.stockOne}/>
</>
)
}
}
export default Main;
API JSON ДАННЫЕ
{
"Meta Data": {
"1. Information": "Monthly Prices (open, high, low, close) and Volumes",
"2. Symbol": "MSFT",
"3. Last Refreshed": "2020-02-27",
"4. Time Zone": "US/Eastern"
},
"Monthly Time Series": {
"2020-02-27": {
"1. open": "170.4300",
"2. high": "190.7000",
"3. low": "157.9800",
"4. close": "158.1800",
"5. volume": "790184525"
},
"2020-01-31": {
"1. open": "158.7800",
"2. high": "174.0500",
"3. low": "156.5100",
"4. close": "170.2300",
"5. volume": "555989763"
},
....}
}