【发布时间】:2021-12-23 02:01:55
【问题描述】:
我正在使用 react-pdf 来呈现 pdf。当我在输入字段中键入时,呈现的 pdf 将发生变化。
过程是这样的......
一、当输入字段发生变化时,触发setBlobData
setBlobData: async (template) => {
try {
let blobData = await pdf(template).toBlob()
store.setState({ pdfBlob: blobData });
} catch (error) {
console.log(error)
return false;
}
}
然后<Document></Document> 重新渲染,
顺便说一句,我在输入字段更改时设置了 timeOut 或 .5ms,以便在触发 setBlobData 之前等待 .5ms 不活动。 请注意将间隔设置为至少1 second 太长而无法反映更改,这就是为什么我将其设置为.5ms
我的结论是,每当<Document> 重新渲染时,它都会阻塞整个 UI 线程。
因此,输入字段键入不流畅。
所以我需要的可能是将<Document> 组件分离到一个在后台/单独线程上运行的包装器中?我读过Web Workers,但我不太清楚如何使用它。
知道如何解决这个问题吗?
**已编辑:**我还记住了<Document>。
【问题讨论】:
-
我从来没有像你那样创建 PDF,但是可以对那个库进行异步调用吗?这将使您免于在某些时间阻塞 UI 线程。断章取意,我在浏览视频here时遇到了这个问题
标签: reactjs jspdf web-worker react-pdf