javascript - Konva.Node.create 导致 Stage 停止工作
问题描述
我可以创建一个舞台并添加形状。但是,如果我使用 Konva.Node.create 命令,则舞台不再显示新添加的形状。
在下面的代码中,第一个文本“Hello World!” 显示,但第二个文本(在 Konva.Node.create 之后)应该显示“Hello World 2!” 没有出现在舞台上。
此代码的工作小提琴是here。
任何帮助,将不胜感激。谢谢
var stage = new Konva.Stage({
container : "container",
width : 400,
height : 300
});
var layer = new Konva.Layer();
stage.add(layer);
var text = new Konva.Text({
x: 10,
y: 48,
text:'Hello, World!',
align: 'left',
fontSize: 30,
fontFamily: 'Calibri',
fill: 'green',
draggable: true,
name: `text_${Date.now()}`
});
layer.add(text);
layer.draw();
Konva.Node.create(stage, "container");
var text2 = new Konva.Text({
x: 40,
y: 48,
text:'Hello, World 2!',
align: 'left',
fontSize: 30,
fontFamily: 'Calibri',
fill: 'green',
draggable: true,
name: `text_${Date.now()}`
});
layer.add(text2);
layer.draw();
解决方案
Konva.Node.create
覆盖 div 中的原始阶段container
并创建一个新副本。所以你的改变是不可见的。
可能您只需要删除该行。
推荐阅读
- c++ - 如果数字是整数,如何签入此代码?
- java - Sonar - 存储副本 - 不应该直接存储或返回可变成员
- mesh - 具有任意曲面的 CGAL 切割立方体
- r - R:根据列值交换数据表行
- spring-boot - java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping;
- blockly - 块状改变颜色
- fonts - 在 VS Code 中为 FiraFlott 配置字体粗细
- selenium - 在 WebEngine (JavaFX) 中找出 HTML 内容中的 iFrame
- vue-component - 如何在 Vuetify 中为 AppBar 添加徽标?
- php - 如何使用php读取API数据并将其插入MYSQL