首页 > 解决方案 > 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();

标签: javascriptkonvajs

解决方案


Konva.Node.create覆盖 div 中的原始阶段container并创建一个新副本。所以你的改变是不可见的。

可能您只需要删除该行。


推荐阅读