Ich versuche Reacts render()
für einige tiefere Komponenten zu umgehen, die auf Canvas zeichnen, aber ich möchte React weiterhin verwenden, um Requisiten usw. zu übergeben. Das Problem, auf das ich stoße, ist das Ich kann mir nicht vorstellen, wie man solche Methoden bei Kindern anruft.Aufruf von Methoden für untergeordnete Komponenten in React
Was ich habe, ist im Grunde:
<canvasRenderer state="active" mode={42}>
<itemFoo fill="red" stroke="black" />
<itemBar fill="blue" stroke="black" />
</canvasRenderer>
Dann innerhalb canvasRenderer
ich tun möchte:
constructor() {
requestAnimationFrame(this.drawFrame);
}
drawFrame =() => {
React.Children.forEach(children, (child) => {
child.drawFrame(); // does not exist
});
}
Vorschläge, wie diese Arbeit zu machen?
Was ist 'child.drawFrame()'? hast du versucht, es auf 'componentDidMount' zu nennen? – goldylucks
@goldylucks - In 'itemFoo',' itemBar' steht der Zeichencode. Das Problem ist, dass in der Schleife "Kind" irgendeine Art von React-Container-Objekt und kein Verweis auf das tatsächliche Element ist, so dass 'drawFrame' nicht existiert. Es spielt keine Rolle, wann es heißt. –