【发布时间】:2021-08-14 11:12:49
【问题描述】:
为了在 D3 中扩展地图投影,建议需要这样的包:
const d3 = require("d3")
require("d3-geo-projection")(d3)
这样,您可以使用父包中的 d3-geo-projection 的 geoAiry 方法:
d3.geoAiry()
使用import 我正在这样做:
import * as d3 from 'd3'
import * as d3geo from 'd3-geo-projection'
然后方法不统一:
d3.geoMercator()
d3geo.geoAiry()
我试过了,但它不起作用:
import * as d3 from 'd3'
import * as d3geo from 'd3-geo-projection'
d3geo(d3)
那么,简而言之,ES6 语法中 require("d3-geo-projection")(d3) 的等价物是什么?
【问题讨论】:
-
分别导入
d3和d3geo没有错。他们的统一是什么意思? -
你试过
import d3 from 'd3'; import d3geo from 'd3-geo-projection'; d3geo(d3);吗?import * as d3geo from ...将始终使d3geo成为对象,因此您不能调用它。您确实需要研究 d3 如何导出其值。 -
Object.assign(d3, d3geo)应该可以完成这项工作。 -
Mike Bostock 对如何导入这些模块有自己的看法:github.com/d3/d3-geo-projection/issues/128
-
@FelixKling 是的,马上就可以了。
标签: javascript npm d3.js ecmascript-6 import