Я интегрирую PDFViewer PDFJS-DIST в проект React с использованием модуля PDFJS-DIST/Web/PDF_VIEWER. Первоначально все работает нормально - PDF загружается, страницы рендеринг, и я могу взаимодействовать с ними. Это вызывает проблемы с пользовательской функцией UpdateVisiblePages, которую я написал, чтобы скрыть/показать определенные страницы на основе взаимодействия с пользователем.
Я интегрирую PDFViewer PDFJS-DIST в проект React с использованием модуля PDFJS-DIST/Web/PDF_VIEWER. Первоначально все работает нормально - PDF загружается, страницы рендеринг, и я могу взаимодействовать с ними. Это вызывает проблемы с пользовательской функцией UpdateVisiblePages, которую я написал, чтобы скрыть/показать определенные страницы на основе взаимодействия с пользователем. [code]const updateVisiblePages = useCallback( (viewer: any) => { console.log(viewer, 'viewer updateVisiblePages before return')
if (!viewer || !viewer._pages.length) return console.log(viewer, 'after return') const allPages = viewer._pages let updated = false allPages.length !== 0 && allPages.forEach((page: any, index: number) => { const pageNum = index + 1 if (!isSearchActive) { if ( pageNum < (Number(selectedContent.startPage) ?? 1) || pageNum > (Number(selectedContent.endPage) ?? allPages.length) ) { if (!page.div.classList.contains('hidden-page')) { page.div.classList.add('hidden-page') // Add class to hide updated = true } } else { if (page.div.classList.contains('hidden-page')) { page.div.classList.remove('hidden-page') // Remove class to show updated = true } } } else { if (page.div.classList.contains('hidden-page')) { console.log( '[DEBUG] Pages updated, removing hidden-page class when searching', ) page.div.classList.remove('hidden-page') // Remove class to show updated = true } } })
if (updated) { viewer.update() // Ensure the viewer updates its rendering setVisiblePagesUpdated((prev) => !prev) // Trigger re-render updateHeight() window.addEventListener('resize', updateHeight) return () => window.removeEventListener('resize', updateHeight) } }, [selectedContent, isSearchActive], )
< /code> И я настраиваю зритель, как это внутри использования: < /p> const viewer = new PDFViewer({ container: container, eventBus: eventBusInstance, enableWebGL: true, renderInteractiveForms: true, textLayerMode: 2, enhanceTextSelection: true, });
viewer.setDocument(pdfDoc); [/code] Мои вопросы: Что может привести к тому, что просмотрщик может стать пустым после загрузки PDF? _Pages (что я понимаю, является личным полем)?>