Clark.Pan 发表于 2024-7-2 11:25:06

升级后遇到 ShapeBaseData 问题解决办法

背景:

SpreadJS V15 升级到 SpreadJS V17 版本后出现了 ShapeBaseData 的报错,详细报错信息如下图所示


问题分析:
该问题由于 SpreadJS 在 V17版本对图表功能进行了增强重构,新的重构基于的是形状功能的底层,原因是为了支持图表的分层以及组合,旋转等效果。
基于新的底层,图片功能在引用时需要额外引用 gc.spread.sheets.shapes.xx.x.x.min.js 这个 js 文件。

解决方案:
1. 检查是否有引入 gc.spread.sheets.shapes.xx.x.x.min.js 文件,如果引入了该文件,检查一下该文件是否在 gc.spread.sheets.charts.xx.x.x.min.js 之前引入。
因为新的chart基于 shapes 所以必须引入在 gc.spread.sheets.charts.xx.x.x.min.js 文件之前。

2. 将 gc.spread.sheets.charts.xx.x.x.min.js 文件替换为 gc.spread.sheets.legacycharts.xx.x.x.min.js。legacycharts就是V17之前老版本chart相关的功能。所以如果只是平替,忽略功能性的升级,那么直接替换成 legacycharts 也是可以的。

yangshuai 发表于 2024-8-13 17:58:58

还需要版本号严格对齐。。。

Clark.Pan 发表于 2024-8-13 18:03:36

yangshuai 发表于 2024-8-13 17:58
还需要版本号严格对齐。。。

这是必须的,但凡SpreadJS的引用都必须保证版本严格对齐。跟这个错误本身没啥关系
页: [1]
查看完整版本: 升级后遇到 ShapeBaseData 问题解决办法