我有一個實用工具可以爲視頻生成縮略圖並將其作爲HTMLCanvasElement
返回。我想渲染元素反應,就像這樣:如何在React中呈現`HTMLCanvasElement`?
render() {
return (
<div className='video-thumbnail'>
{this.props.videoThumbnailCanvas}
</div>
);
}
但是當我嘗試,我得到一個錯誤:
Error: Objects are not valid as a React child (found: [object HTMLCanvasElement]).
什麼是做到這一點的好辦法?一個想法是從componentDidMount
(例如React.getDOMNode(this).appendChild(this.props.videoThumbnailCanvas)
)進行直接的DOM操作,但這看起來相當黑客。
您是否控制效用函數?你可以讓它返回一個''JSX元素嗎? –
@DannyDelott - 我確實控制它。它目前看起來像這樣: ' function getThumb(){ let canvas:HTMLCanvasElement = document.createElement('canvas'); let context = canvas.getContext('2d');如果(上下文)context.drawImage(videoElement,0,0,w,h); } return canvas; } ' 我不知道如何使用JSX元素繪製「上下文」。 – allenrabinovich
我相信你不能在你的'getThumb()'中使用'document.creteElement'()' – Muhaimin