0

我有一个应用程序,其中 Konva 最初是隐藏的(它位于页面上选项卡控件的第二个“选项卡”上)。

当用户单击此页面上的“保存”按钮时,我正在尝试调用Stage.toDataURL()以获取 Konva 中的内容。但是,如果从不显示第二个选项卡,则始终返回空白图像。

  • Stage.draw()我之前试过打电话Stage.toDataURL(),但没有成功。
  • 我也尝试在调用之前缓存舞台Stage.toDataURL()。没运气。
  • 我在画布上没有任何图像,因此等待图像加载不是问题。
  • 一旦显示第二个选项卡,即使用户随后切换回第一个选项卡并重新隐藏 Konva,它也可以正常工作。

这是 Konva 的已知限制吗?除非它可见,否则它不会渲染?

编辑:已解决

一些代码试图在页面加载时在其容器内居中和缩放 Konva。由于容器还不可见,它的宽度和高度为 0。这导致代码将 Konva Stage 的宽度和高度设置为负数。一旦我阻止了它,它就可以很好地导出图像——即使是隐藏的。

4

1 回答 1

1

这解决了。一些代码试图在页面加载时在其容器内居中和缩放 Konva。由于容器还不可见,它的宽度和高度为 0。这导致代码将 Konva Stage 的宽度和高度设置为负数。一旦我阻止了它,它就可以很好地导出图像——即使是隐藏的。

于 2020-05-07T19:24:31.050 回答