reactjs - 如何在reactjs中动态创建 Canvas 并动态添加引用?

标签 reactjs canvas refs

有人能告诉我如何在 react 中动态创建引用吗?

例如我有

<canvas style={{display:'none'}} ref={(el) => this.image = el} > </canvas>

我想要更加动态地创建。

像这样:

<canvas style={{display:'none'}} ref={(el) => this.image1 = el} > </canvas>
<canvas style={{display:'none'}} ref={(el) => this.image2 = el} > </canvas>
<canvas style={{display:'none'}} ref={(el) => this.image3 = el} > </canvas>

那么,我可以这样做吗,或者还有其他方法吗?

基本上,我从服务器获取 pdf url,并将其转换为 Canvas ,然后使用它转换为图像。

我已经对一张图像执行了此操作,但要动态执行此操作,我也必须动态创建这些引用,从而能够引用它们。

那么,我该怎么做呢?

编辑:实际上我必须动态创建 img 标签并为这些标签创建引用,因为我想从 Canvas 创建 dataurl 并将其显示在图像标签中。

最佳答案

使用回调模式动态定义引用很容易,只需在构造函数中将类变量指定为空对象,然后在映射它时设置引用,就像

constructor(props) {
   super(props);
   this.canvasRefs = {}
}

this.props.canvases.map((value,index)=> {
     let id = index;
     return <canvas ref={(ref) => this.canvasRefs[`canvas${id}`] = ref}></canvas>
})

您可以通过 this.canvasRefs.canvas1this.canvasRefs.canvas2 等方式访问它们

关于reactjs - 如何在reactjs中动态创建 Canvas 并动态添加引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50598423/

相关文章:

javascript - 函数不适用于 React.js 中的 onClick 事件

clojure - clojure 中全局变量的最佳实践(refs 与 alter-var-root)?

javascript - AstraDB GET 请求失败

javascript - 服务 worker 在 react 中缓存的路由

javascript - 如何将回调从一个子组件传递到另一个子组件

delphi - 菜单翻转闪烁 - 如何解释鼠标离开事件

javascript - 对象网格居中

canvas - WebGL 使用不同的混合模式绘制 2d 对象

Git 引用目录 <repo>/.git/refs