Я изучаю React для нового проекта и пытаюсь отобразить диаграмму Google в React. Данные поступают из API в формате JSON. Вот как выглядят данные, когда я отображаю this.state.chartData
внутри результата рендеринга:
[[30,7.4074101242,7.3616415376,7.4531787107,7.4853587327,7.4104486584,7.5602688071, null], [60,7.3863675982,7.357658375, 7.4150768214,7.4160903322,7.3768180476,7.4553626167,7.24], [75,7.3791653682,7.3555561367,7.4027745998,7.3818045516,7.3482003967,7.4154087065,7.35], [90,7.3736544401,7.3527478235,7.3945610567,7.3503477497,7.3169193569,7.3837761425,7.22], [105, 7.370215688,7.3500473051,7.3903840708,7.320321379,7.2855547395,7.3550880184,7.24], [120,7.3682826912,7.3476374764,7.3889279059,7.2867679022,7.2503262994,7.323209505,7.25], [150,7.3713009875,7.3489746737,7.3936273013,7.2367832163,7.1911558947,7.2824105378, нуль] ]
К сожалению, я получаю следующую ошибку при попытке использовать эти данные для строк: Невозможно нарисовать диаграмму: данные не указаны. Я предполагаю, что проблема в том, что я не рисую график в нужное время в жизненном цикле компонента.
Это мой код прямо сейчас: * 101 0 *
class TrendGraph extends React.Component {
loadData() {
console.log("loading data");
fetch('http://127.0.0.1:5000/resultSingle/arterial/ph')
.then(response => response.json())
.then(data => {
this.setState({ chartData: data });
})
.catch(err => console.error(this.props.url, err.toString()))
}
constructor(props) {
super(props);
this.state = {
chartData:null
}
}
componentDidMount() {
console.log('GrandChild did mount.');
this.loadData()
}
render() {
return (
<Card small className="h-100">
<CardHeader className="border-bottom">
<h6 className="m-0">{ this.props.title }</h6>
</CardHeader>
<CardBody className="pt-0">
<Chart
width={"100%"}
height={"250px"}
chartType="LineChart"
loader={<div>Loading Chart</div>}
columns={[ ... ]}
rows={ this.state.chartData }
options={{ ... }}
/>
</CardBody>
</Card>
);
}
}
Я пробовал много разных подходов, но ничего не получалось. Если бы кто-то мог указать мне правильное направление, вы бы сделали мой день. Заранее спасибо!