Я пытаюсь визуализировать линейный график (используя canvas js) в проекте реагирования Js, поэтому я получаю данные с помощью запроса ax ios get и зацикливаю этот запрос для заполнения переменной данных это используется в качестве входных данных для графика, но моя проблема в том, что топор ios, кажется, заполняет мои данные случайным образом
Это мой код внутри componentdidmount()
:
constructor(props) {
super(props);
this.state = {
data: [] ,
};
}
componentDidMount(){
let responses = []
for (let i = 0; i < 8; i++) {
responses.push(axios.get("http://localhost:5000/transfer/getUsesByDay/"+i).then(res =>{
return res.data
}))
}
Promise.all(responses).then(results => {
console.log(results)
this.setState(prevState => {
return {
data: [...prevState.data, ...results.map(r => r)]
};
})
}
)
И это функция рендеринга:
render() {
const { data: chartData } = this.state;
const { classes } = this.props;
{console.log(chartData)}
return (
<Paper>
<Chart
data={chartData}
className={classes.chart}
>
Теперь, когда я выполняю, я получаю этот результат (console.log (results)):
0: {year: "15", utilisation: 3}
1: {year: "12", utilisation: 0}
2: {year: "12", utilisation: 0}
3: {year: "09", utilisation: 1}
4: {year: "08", utilisation: 1}
5: {year: "10", utilisation: 5}
6: {year: "09", utilisation: 1}
7: {year: "10", utilisation: 0}
И затем, когда я повторно выполняю получить другой результат, подобный этому:
0: {year: "11", utilisation: 3}
1: {year: "10", utilisation: 0}
2: {year: "10", utilisation: 0}
3: {year: "09", utilisation: 1}
4: {year: "09", utilisation: 1}
5: {year: "09", utilisation: 5}
6: {year: "08", utilisation: 1}
7: {year: "08", utilisation: 0}
И результат должен быть упорядочен следующим образом:
0: {year: "14", utilisation: 3} // the result of http://localhost:5000/transfer/getUsesByDay/"+i when i == 0 , and so on
1: {year: "13", utilisation: 0}
2: {year: "12", utilisation: 0}
3: {year: "11", utilisation: 1}
4: {year: "10", utilisation: 1}
5: {year: "09", utilisation: 5}
6: {year: "08", utilisation: 1}
7: {year: "07", utilisation: 0}