如何在 nextjs 中使用 html2canvas

Gil*_*sma 1 frontend html2canvas reactjs next.js

我在nextjs中使用html2canvas。由于nextjs 进行服务器端渲染,因此很难在nextjs中使用html2canvas。
我使用nextjs提供的动态库来导入html2canvas,现在不知道html2canvas的文档中写的导入后如何使用html2canvas功能。

导入html2canvas

const html2canvas = dynamic(() => import('html2canvas'),{ssr:false})
Run Code Online (Sandbox Code Playgroud)

当我按照文档中所写的步骤运行时,错误的输出说

“html2canvas 不是一个函数”

html2canvas(document.body).then(function(canvas) {
    document.body.appendChild(canvas);
});
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用它。

Pra*_*h S 7

Nextjs 动态导入用于导入 react 组件。如果你想导入一个节点模块,你可以使用普通的基于 javascript 的动态导入,如下所示

import('html2canvas').then(html2canvas => {
  html2canvas.default(document.body).then(canvas => 
    document.body.appendChild(canvas)
  )
}).catch(e => {console("load failed")})
Run Code Online (Sandbox Code Playgroud)