首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rescript react:创建隐藏的画布元素

Rescript react:创建隐藏的画布元素
EN

Stack Overflow用户
提问于 2021-11-11 21:16:15
回答 1查看 351关注 0票数 1

我正在创建一个简单的反应应用程序(HTML),允许用户浏览到本地pc上的图像,然后将其显示在图像标记中。我想要获取一个数据-url并动态创建一个隐藏的画布标记(对另一种方法开放,但我希望调整图像的大小,而不是在显示图像的标记上设置大小限制)。这是我的调整代码

MyComponent.res (违规代码)

代码语言:javascript
复制
let resize = dataUrl => {
    let canvas = React.createElement(_ => React.string("canvas"), {"style": "display: none;"})
    canvas.getContext("2d");
    dataUrl
}

错误

代码语言:javascript
复制
  We've found a bug for you!
  /Users/n0321437/projects/rescript-react/from-local-template/src/Upload.res:14:12-21

  12 │     let canvas = React.createElement(_ => React.string("canvas"), {"sty
     │ le": "display: none;"})
  13 │     //let myCanvas = canvas([React.null])
  14 │     canvas.getContext("2d");
  15 │     dataUrl
  16 │ }

无法找到记录字段getContext。

我还没有找到很多关于使用createElement或createElementVariadic的文档或帖子,所以我在这里猜测。看起来,createElement返回一个类型为element的对象,但没有关联的方法:

React.res

代码语言:javascript
复制
type element
external createElement: (component<'props>, 'props) => element = "createElement"

所以我想有几个问题

实际上,我是否创建了一个元素来表示画布的object?

  • FInally对象?
  1. ,如果我已经这样做了,我如何在代码上调用方法?如果没有,如何创建隐藏的画布
  2. ?如何导航文档和源代码来发现它们自己?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-12 09:27:57

React是一个库,它提供了一个声明性API,用于通过虚拟DOM创建、插入和更新DOM。React.createElement是一个内部API,用于创建虚拟DOM元素。

您似乎想要的是创建一个实际的DOM元素,然后不要将它插入到DOM中。React并不是为了这样做的。

相反,您想要的是绑定到DOM,如果您只需要它的几个特性,就可以将其绑定起来,或者您可以使用一组完整的DOM绑定,比如rescript-webapi,它还方便地包括了Canvas的绑定。

下面是如何创建一个canvas元素:

代码语言:javascript
复制
open Webapi.Dom

let canvas = document->Document.createElement("canvas")

然后,要获得要使用的画布上下文:

代码语言:javascript
复制
open Webapi.Canvas
let context = canvas->CanvasElement.getContext2d

然后使用Canvas2d中的函数来做您想做的事情:

代码语言:javascript
复制
let image = context->Canvas2d.createImageDataCoords(~width=100, ~height=100)
...
context->Canvas2d.putImage(image, ~dx=0, ~dy=0)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69935017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档