В настоящее время я практикую React и привыкаю к диаграммам.
У меня были трудные времена при использовании диаграммы React и вызове Axios для получения информации из онлайн-файла JSON.
Он отлично работает с предварительно запрограммированными значениями, но при вызове с помощью Axios не дает результата.
У меня есть сомнения относительно того, как правильно применить Axios к существующему коду! Любая помощь очень ценится.
import React, { Component } from "react";
import { Doughnut } from "react-chartjs-2";
import axios from "axios";
const headingStyle = {
"text-align": "center"
};
const data = {
labels: ["In", "out", "Balance"],
datasets: [
{
// data: [300, 100, 200],
backgroundColor: ["#27DD73", "#FF2400", "#36A2EB"],
hoverBackgroundColor: ["#27DD73", "#FF2400", "#36A2EB"]
}
]
};
class DoughnutExample extends Component {
async componentDidMount() {
const { data: users } = await axios.get(
"https://api.myjson.com/bins/bw0u4"
);
this.setState({ users });
}
render() {
return (
<div className = "card card-1" style = {{ padding: "10px" }}>
<h3 style = {headingStyle}>Cash Flow</h3>
<Doughnut data = {data} />
</div>
);
}
}
export default DoughnutExample;
Мой файл JSON находится здесь: https://api.myjson.com/bins/bw0u4
Я хочу взять данные "диаграммы" из JSON.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В data нет переменной render. Поскольку ответ сохраняется в состоянии, его следует использовать соответствующим образом:
<Doughnut data = {this.state.users} />
Если намерение состоит в том, чтобы получить ключ chart из элементов массива, массив должен быть переназначен:
this.setState({ users: users.map(({ chart }) => chart) });
Кроме того, есть нет проблем с этим фрагментом.
Если вы не присвоили this.state нулевое значение, ошибка, вероятно, относится к другому фрагменту кода, например. Ответ JSON, если он отличается от того, что вы показали.
Я использовал точный фрагмент кода, как показано выше. Таким образом, состояние не присваивается с нулевым значением. Тот же json тоже. Я проверил фрагмент кода, на который вы дали ссылку в stackblitz. Он получает данные из json, но я пытался просто показать значение «диаграммы» из json в виде диаграммы пончиков из «реакции cahrt js».
У вас нет начального состояния в исходном коде, state = {}. Это будет нуль. Думаю, в этом проблема.
Эстус! Спасибо вам за помощь.
Эй, Эстус, спасибо за помощь. Я попробовал «this.state.users», но получил ошибку «Невозможно прочитать свойство« пользователи »нуля». Любая информация о том, что могло пойти не так?