react-pdf-viewer@2.11.0使用zoom插件报类型不匹配错误如何解决
react-pdf-viewer 2.11.0 zoom插件类型不兼容报错解决思路
该报错为TypeScript类型校验不通过导致,对应解决方法如下:
- 检查依赖版本一致性
绝大多数该问题都是因为项目中@react-pdf-viewer/core和@react-pdf-viewer/zoom版本不匹配导致的,哪怕显式声明的版本都是2.11.0,也可能因为依赖嵌套安装出现多版本副本。
解决步骤:- 删除项目根目录的node_modules文件夹,以及对应的包管理锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml)
- 在package.json中确认所有
@react-pdf-viewer/开头的依赖版本号完全一致,均为2.11.0 - 重新执行安装命令安装所有依赖
- 清除TypeScript缓存
TypeScript的增量编译缓存可能会导致类型识别错误,优先执行以下操作:- 删除项目根目录下的
.tsbuildinfo缓存文件 - 若使用VS Code,按下快捷键
Ctrl+Shift+P,选择「TypeScript: Restart TS Server」重启TS服务后重新校验
- 删除项目根目录下的
- 临时类型兼容处理
若以上方案都无法解决,可以通过类型断言绕开类型校验,代码修改如下:
首先从core包导入Plugin类型:
然后修改Viewer组件的plugins属性:import { Viewer, Plugin } from '@react-pdf-viewer/core'<Viewer fileUrl={fileUrl} plugins={[zoomPluginInstance as unknown as Plugin]} /> - 检查插件导入方式
部分小版本的react-pdf-viewer插件采用默认导出而非命名导出,可以尝试修改zoomPlugin的导入语句:import zoomPlugin from '@react-pdf-viewer/zoom'
内容的提问来源于stack exchange,提问作者Niall
相关产品推荐
相关产品推荐

