我正在做一个用javascript、jQuery和Vite.js构建的项目。我的同事使用D3构建了一个数据可视化——一个美国州地图——我需要在项目的特定页面上实现它。他们使用测试数据构建组件,我的工作基本上是将组件加载到一个页面上,传递从API调用返回的实际数据。
测试项目中的所有内容都可以完美地工作,但是当我试图将此代码实现到项目中的脚本文件中时-从工作版本复制和粘贴-我得到了一个错误,说某些属性无法读取。在调试失败一段时间后,我随机尝试从HTML中的脚本标签链接中删除type="module"
,然后,一切都工作了。有人知道为什么会这样吗?当脚本类型设置为模块时,我无法运行此代码,除非我需要将脚本类型设置为模块,因为我正在为页面的其他方面导入许多组件。
使用CodePen的设置方式,我无法复制问题,因为HTML和JS文件是自动链接的。但是如果你把这段代码复制到你的编辑器中,然后在html中,把JS文件设置为一个模块,你就会发现问题了。
谢谢。我完全不知道该怎么办才好。我可以把所有的D3代码在自己的脚本文件,但我没有办法传递它的变量从其他文件,如果它不是一个模块。
根据注释,我原始代码中的以下行不能在严格模式下工作:
this.uStates = uStates;
this.uStatePaths = uStatePaths;
修复很简单,我只需要写下面的代码:
window.uStates = uStates;
window.uStatePaths = uStatePaths;