【发布时间】:2021-03-17 08:46:46
【问题描述】:
我正在使用 react 应用程序制作一个 pdf 查看器。我有一个将近 150 页的 pdf,我正在使用放大和缩小图标,我正在使用 Page 组件中的 scale 道具来实现这一点。但是,每当我放大或缩小时,pdf 文件都会稍微延迟以重新渲染放大的页面。并且这种延迟不会发生在小型 pdf 中。
这是我的代码-
const [pages, setPages] = React.useState(0);
const [pagesArr, setPagesArr] = React.useState([]);
const [scrolledValue, setScrolledValue] = React.useState(0);
const [pageNumber, setPageNumber] = React.useState(1);
const [pdfScale, setPdfScale] = React.useState(1.0);
function onLoadSuccess(param) {
setPages(param.numPages);
const numArr = [];
for (let num = 1; num <= param.numPages; num++) {
numArr.push(num);
}
setPagesArr(numArr);
}
function handleZoominIcon() {
setPdfScale(prev => {
if (prev > 2.1) {
return 2.2;
} else {
return prev + 0.1;
}
});
}
function handleZoomoutIcon() {
setPdfScale(prev => {
console.log(prev);
if (prev <= 0.5) {
return 0.5;
} else {
return prev - 0.1;
}
});
}
return (
<section className = 'ppt-view-pdf' style = {scrolledStyle[1], {zoom: '100%'}} ref = {props.pdfViewRef}>
<Document file = {PPT} onLoadSuccess = {onLoadSuccess}>
{pagesArr.map(element => <Page scale = {pdfScale} key = {element} pageNumber = {element}></Page>)}
</Document>
</section>
)
有什么解决办法吗?
【问题讨论】:
标签: javascript reactjs pdf react-pdf