Ich würde gerne this.state von "main.js" (übergeordnete Komponente) in "bar.js" (untergeordnete Komponente) übergeben.reactjs kann this.props nicht in react-chartist übergeben
//main.js
import React, { Component } from 'react';
import BarChart from './Bar-chart';
class Hero extends Component {
constructor(props) {
super(props);
this.state = {
labels: ['P1', 'P2', 'P3', 'P4', 'P5/P6'],
series: [[ 1, 2, 3, 4, 5 ]]
}
}
render() {
return (
<div className="header">
<div className="container">
<div className="row">
<BarChart data={this.props.labels, this.props.series}/>
</div>
</div>
</div>
</div>
);
}
};
export default Hero;
Hier ist mein Kind Komponente:
//bar.js
import React, { Component } from 'react';
import ChartistGraph from 'react-chartist';
import Legend from 'chartist-plugin-legend';
class BarGraph extends Component {
constructor(props) {
super(props);
}
render() {
const option = {
height: '350px',
plugins: [
Legend({
legendNames: ['P1', 'P2', 'P3', 'P4', 'P5/P6'],
})
]
};
return (
<ChartistGraph
data={this.props.labels, this.props.series}
options={option}
type={'Bar'} />
);
}
barData() {
return ({
labels: ['P1', 'P2', 'P3', 'P4', 'P5/P6'],
series: [[ 8, 28, 40, 25, 9 ]]
});
};
}
export default BarGraph;
Außerdem ist ich immer noch ein wenig verwirrt, wenn ich zwischen this.state vs this.props verwenden sollte. Betrete ich dieses Szenario in diesem Szenario mit this.props?
Wenn Werte von Beschriftungen, Serien der Komponente in der Laufzeit basierend auf Benutzerinteraktion oder einer anderen externen Bedingung geändert werden, ist es besser, den Status zu verwenden, da dann die neuen Werte automatisch in den Status übernommen werden. Wenn die Werte von Labels, Serien der Komponente konstant sind und sich nie nach dem anfänglichen Rendern ändern, ist es besser, nur Props zu verwenden. –