我正在开发一个 Java 项目,其中使用 Highcharts v10.3.2 作为我的图表库,并使用最新的 GWT 作为我的客户端框架。为了从 Java 与 Highcharts 交互,我使用 jsinterop 创建了一个 Java 包装器。
但是,我遇到了一个令人费解的问题 - 似乎我不能在同一个项目中同时使用 Highmaps 和 Highstock。
问题来了:
如果我在 Highstock 之前导入 Highmaps,Highmaps 会按预期完美运行,但是当我尝试使用 Highstock 时,会遇到错误:
$wnd.Highcharts.stockChart is not a function.
相反,如果我更改顺序并在 Highmaps 之前导入 Highstock,Highstock 会像魅力一样工作,但现在 Highmaps 会抛出错误:
$wnd.Highcharts.mapChart is not a function.
这就是我在项目中导入库的方式:
<%--Highcharts v10.3.2--%>
<script type="text/javascript" src="assets/js/highcharts.min.js" charset="utf-8"></script>
<script type="text/javascript" src="assets/js/highcharts-maps.min.js" charset="utf-8"></script>
<script type="text/javascript" src="assets/js/highcharts-stock.min.js" charset="utf-8"></script>
<script type="text/javascript" src="assets/js/highcharts-more.min.js" charset="utf-8"></script>
我还尝试在 CodePen 中重现此问题,并且它似乎确实可以在那里复制:CodePen 示例
以前是否有人遇到过类似的问题,或者是否有人深入了解为什么 Highstock 和 Highmaps 在以这种方式导入时可能无法很好地协同工作?
好像用
<script src="https://code.highcharts.com/maps/modules/map.js"></script>
而不是
<script src="https://code.highcharts.com/maps/highmaps.js"></script>
会完成这项工作。