D3 Kreisdiagramm: Uncaught Typ-Fehler - Cannot read property 'pie' undefined
Ich bin versucht zu erstellen, eine d3-Kreisdiagramm basiert off dieser Ressource.
Jedoch bekomme ich die folgende Fehlermeldung:
Nicht erfassten Typ-Fehler - Cannot read property 'pie' undefined
Mein code:
class PieChart extends React.Component {
constructor() {
super();
//- This is where the error is occuring!
this.pie = d3.layout.pie().value((d) => d.value);
this.colors = d3.scale.category10();
}
arcGenerator(d, i) {
return (
<LabeledArc key = {`arc-${i}`}
data = {d}
innerRadius = {this.props.innerRadius}
outerRadius = { this.props.outerRadius }
color = {this.colors(i)} />
);
}
render() {
console.log('Render Method Fires');
let pie = this.pie(this.props.data),
translate = `translate(${this.props.x}, ${this.props.y})`;
return (
<g transform={translate}>
{pie.map((d, i) => this.arcGenerator(d, i))}
</g>
);
}
}
Ich glaube, ich habe alles richtig eingestellt. Im mit reagieren-Schienen gem sowie die d3-Schienen. Ich hatte zu downloaden d3.js und setzen es direkt in mein js-Ordner, um loszuwerden, der 'nicht finden können, d3'.
Kann jemand mich in die richtige Richtung, haben Sie vielleicht eine bessere Ressource für das hinzufügen von d3 + reagieren Funktionalität in rails?
- Torte und die Farben sind nicht definiert, die als Globale variable
- Welche version von D3? Wenn Sie mit v4 dies wurde umbenannt wie folgt: d3.layout.pie ↦ d3.pie.
- dies funktionierte tatsächlich perfekt. Ich glaube nicht, prüfen Sie die unterschiedlichen Versionen, vielen Dank für meine Rettung eine riesige Kopfschmerzen 🙂
- Bitte haben Sie einen gründlichen Blick auf die changelog! Das nächste problem, Ihr gehen, zu laufen in der nächsten Zeile mit
d3.scale.category10()
. Bitte haben Sie einen Blick auf meine Antwort für weitere Informationen. - Sie sind richtig, und ich war in der Lage, Sie zu beheben, indem Sie die changelog. Ive gegangen und behoben die Fehler, aber der graph noch nicht angezeigt, nur die Legende :/
- Um zu vermeiden, überladen Sie diese Frage mit jedem follow-up-Fragen, richten Sie bitte eine minimale reproduzierbare Beispiel, überprüfen Sie Ihre Konsole für die Fehler-und, wenn noch nötig, stellen Sie eine neue Frage die Bereitstellung all diese Informationen.
- Ich werde es auf Arbeit von mir, bis ich Auspuff, was ich herausfinden kann. Danke für die Antwort! 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie gesehen in vielen ähnlichen Fragen, bevor dies ist zurückzuführen auf die neue Modularität von D3 v4, die es notwendig machten, um flatten namespaces:
Für den code bedeutet dies, dass einige Referenzen ungültig sind, weil Sie beziehen sich auf Eigenschaften, die nicht mehr in v4. Das snippet, das Sie enthalten, enthält zwei solcher Fälle:
und auf der nächsten Zeile des Codes