我正在将Svg.js导入我的打字稿项目。致电SVG时,出现以下错误。
Uncaught (in promise) TypeError: SVG is not a function
我尝试以不同的方式导入Svg.js,但这似乎不是问题。我也尝试以不同方式调用“ SVG”。
使用Svg.js版本@svgdotjs/svg.js": "^3.0.11
例如:
import * as SVG from "@svgdotjs/svg.js";
const svgjs: any = SVG;
export default svgjs;
let draw = new SVG.Doc('drawing');
let rect = draw.rect(100, 100).attr({fill: "#f06"})
上述方法返回Uncaught (in promise) TypeError: SVG.Doc is not a constructor
这是我导入Svg.js的方式。
import * as SVG from '@svgdotjs/svg.js'
这就是我使用“ SVG”的方式。
let draw = SVG('drawing');
let rect = draw.rect(100, 100).attr({fill: "#f06"})
答案 0 :(得分:0)
这可能取决于您的Babel配置,但是根据我的经验,import * as X
创建了一个对象,该对象包装了模块的所有输出。因此,您必须致电:
let draw = SVG.default('drawing');
或者更好,将导入转换为import X
:
import SVG from "@svgdotjs/svg.js";
...
let draw = SVG('drawing');
答案 1 :(得分:0)
SVG()现在应该可以在3.0.12中正常工作
答案 2 :(得分:0)
import SVG from "@svgdotjs/svg.js/src/svg" //v3.0
let draw = SVG().addTo('#drawing').viewbox(0, 0, 300, 140)
let rect = draw.rect(100, 100).attr({fill: "#f06"})