关于Autodesk Tandem React Viewer示例代码运行报错的求助
解决方案:Autodesk Tandem React Viewer 空白页及DtApp/DtFacility找不到问题
问题根源
Autodesk.Viewing.Private是Autodesk Viewer的内部私有命名空间,API无稳定性承诺,版本迭代后常被移除、重命名或迁移至公开命名空间。你遇到的报错是因为示例仓库的代码引用了已废弃的私有API,且依赖版本可能与当前Viewer CDN版本不匹配。
修复步骤
1. 对齐依赖与Viewer CDN版本
确保项目中@autodesk/tandem-viewer的版本与页面加载的Autodesk Viewer CDN版本完全一致:
- 打开
package.json,查看@autodesk/tandem-viewer的版本号(如^7.197.0) - 检查
public/index.html中Viewer CDN脚本的版本,确保两者一致:<script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.197.0/viewer3D.min.js"></script> - 若版本不一致,执行
npm install @autodesk/tandem-viewer@对应版本更新依赖
2. 替换私有API为公开引用
将App.tsx中对私有命名空间的引用替换为公开API或官方包导出:
- 原错误代码:
const app = new Autodesk.Viewing.Private.DtApp(options); const facility = Autodesk.Viewing.Private.DtFacility; - 修改为从
tandem-viewer包直接导入:import { DtApp, DtFacility } from '@autodesk/tandem-viewer'; // 初始化示例 const app = new DtApp({ container: document.getElementById('viewer-container'), // 其他配置项 });
3. 确保Viewer初始化顺序正确
在Viewer脚本加载完成后再初始化DtApp,避免因API未就绪导致的报错:
Autodesk.Viewing.Initializer(options, () => { // 这里初始化DtApp const app = new DtApp(/* 配置 */); });
4. 清理缓存并重启服务
- 执行
rm -rf node_modules package-lock.json(Windows系统用rmdir /s node_modules && del package-lock.json) - 重新安装依赖:
npm install - 重启开发服务器:
npm start
内容的提问来源于stack exchange,提问作者james
相关产品推荐
相关产品推荐

