Когда я console.log (this.state) в App.js, объект данных появляется в браузере devtool, но без изменений на экране.Нет строк, нет вариантов, ничего.Когда я console.log (this.state) в Chart.js, объект появляется два раза, но всегда пустой.Нет сообщения об ошибке на этот раз, но это не лучше.Я хочу создать две строки, я не знаю, правильно ли это.Но я не думаю, что проблема оттуда
App.js
import React, { Component } from 'react';
import './style/App.css';
import axios from 'axios'
import Table from './components/table/Table'
import Chart from './components/Chart'
class App extends Component {
state = {
tabData: [],
chartData: {}
}
componentWillMount = () => {
this.getDataFromServer()
}
getDataFromServer = () => {
axios.get("http://localhost:8000")
.then((response) => {
const twentyObj = response.data.splice(0,20);
const time = twentyObj.map(item =>
item.timestamp
);
const cacData = twentyObj.map(item =>
item.stocks.CAC40
);
const nasData = twentyObj.map(item =>
item.stocks.NASDAQ
);
this.setState({
tabData:twentyObj,
chartData:{
labels: [time],
datasets:[
{ label:"CAC40",
data:[cacData],
fill: false,
lineTension: 0.1,
backgroundColor: 'rgba(75,192,192,0.4)',
borderColor: 'rgba(75,192,192,1)',
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 0.0,
borderJoinStyle: 'miter',
pointBorderColor: 'rgba(75,192,192,1)',
pointBackgroundColor: '#fff',
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: 'rgba(75,192,192,1)',
pointHoverBorderColor: 'rgba(220,220,220,1)',
pointHoverBorderWidth: 2,
pointRadius: 1,
pointHitRadius: 10,
},
{ label:"NASDAQ",
data:[nasData],
fill: false,
lineTension: 0.1,
backgroundColor: 'rgba(75,30,192,0.4)',
borderColor: 'rgba(75,30,192,1)',
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 0.0,
borderJoinStyle: 'miter',
pointBorderColor: 'rgba(75,30,192,1)',
pointBackgroundColor: '#fff',
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: 'rgba(75,30,192,1)',
pointHoverBorderColor: 'rgba(220,220,220,1)',
pointHoverBorderWidth: 2,
pointRadius: 1,
pointHitRadius: 10,
}
],
}
})
console.log(this.state)
})
.catch(function (error) {
console.log(error);
})
}
render() {
return (
<div className="App">
<h1>TEST Project</h1>
<Chart linesData={this.state.chartData}/>
<Table stateData={this.state.tabData}/>
</div>
);
}
}
export default App;
Chart.js
import React, { Component } from 'react';
import { Line } from 'react-chartjs-2';
class Chart extends Component{
state = {
chartLinesData:this.props.linesData
}
render(){
console.log(this.state)
return(
<Line data={this.state.chartLinesData}
width={300}
height={150}
options={{
maintainAspectRatio: false
}}
/>
)
}
}
export default Chart;