Datamaps 给我一个 Cannot read 属性 'albersUsa' of undefined
Datamaps is giving me a Cannot read property 'albersUsa' of undefined
我在尝试创建地图时遇到此错误:
我目前使用的版本 "datamaps": "^0.5.8",
这是直接来自我的 package.json
。我还检查了实际包中的 package.json
以查看 main 指向的位置:
我发现了一个相关的问题,甚至可能是同样的问题:
https://github.com/markmarkoh/datamaps/issues/259
问题是没有人说出答案是什么,有人提到只加载了特定国家/地区的 js 文件,但我检查了一下 datamaps.all.js
正在加载。
这要归功于 D3 v4 的新模块化,这使得有必要 flatten namespaces:
However, there is one unavoidable consequence of adopting ES6 modules: every symbol in D3 4.0 now shares a flat namespace rather than the nested one of D3 3.x.
对于您的代码,这意味着某些使用 d3-geo 模块的引用无效,因为它们引用的属性在 v4 中不再可用:
Geographies (d3-geo)
- d3.geo.albersUsa ↦ d3.geoAlbersUsa
因为数据映射定义了对 D3 的依赖关系,例如 ^3.5.6
这将包括 D3 v4。但是,由于上述命名空间的更改,您将不得不使用 D3 v3。
我在尝试创建地图时遇到此错误:
"datamaps": "^0.5.8",
这是直接来自我的 package.json
。我还检查了实际包中的 package.json
以查看 main 指向的位置:
https://github.com/markmarkoh/datamaps/issues/259
问题是没有人说出答案是什么,有人提到只加载了特定国家/地区的 js 文件,但我检查了一下 datamaps.all.js
正在加载。
这要归功于 D3 v4 的新模块化,这使得有必要 flatten namespaces:
However, there is one unavoidable consequence of adopting ES6 modules: every symbol in D3 4.0 now shares a flat namespace rather than the nested one of D3 3.x.
对于您的代码,这意味着某些使用 d3-geo 模块的引用无效,因为它们引用的属性在 v4 中不再可用:
Geographies (d3-geo)
- d3.geo.albersUsa ↦ d3.geoAlbersUsa
因为数据映射定义了对 D3 的依赖关系,例如 ^3.5.6
这将包括 D3 v4。但是,由于上述命名空间的更改,您将不得不使用 D3 v3。