Ich habe ein Dienstprogramm, das ein Thumbnail für ein Video erzeugt und es als zurückgibt. Ich möchte dieses Element machen in Reaktion, etwa so:Wie rende ich ein `HTMLcanvasElement` in React?
render() {
return (
<div className='video-thumbnail'>
{this.props.videoThumbnailCanvas}
</div>
);
}
Aber wenn ich versuche, dass ich einen Fehler, dass:
Error: Objects are not valid as a React child (found: [object HTMLCanvasElement]).
Was ist ein guter Weg, dies zu tun? Eine Idee besteht darin, eine direkte DOM-Manipulation von componentDidMount
(z. B. React.getDOMNode(this).appendChild(this.props.videoThumbnailCanvas)
) durchzuführen, aber das scheint ziemlich hackig zu sein.
Steuern Sie die Dienstprogrammfunktion? Kannst du es stattdessen ein '' JSX Element zurückgeben lassen? –
@DannyDelott - Ich kontrolliere es. Es sieht im Moment in etwa so aus: ' Funktion getThumb() { let Canvas: HTMLCanvasElement = document.createElement (' Leinwand '); Lassen Sie Kontext = canvas.getContext ('2d'); if (Kontext) { context.drawImage (videoElement, 0, 0, w, h); } Rückkehr Canvas; } ' Ich bin mir nicht sicher, wie ich mit einem JSX-Element in den Kontext ziehen würde. – allenrabinovich
Ich glaube, Sie können 'document.creteElement' nicht in Ihrem' getThumb() ' – Muhaimin