无法理解为什么 Konva 文本不隐藏

Can't understand why Konva text do not hide

我想在拖动矩形时隐藏并显示 Konva.text -> 显示文本并在拖动结束时隐藏文本,但我不明白为什么在拖动结束时 Konva.text 不隐藏隐藏。

var stage = new Konva.Stage({ container: 'container', width: 400, height: 250 });
var layer2 = new Konva.Layer(); var groupe = new Konva.Group({})

var lineV = new Konva.Rect({ x: 50, y: 50, width: 70, height: 50, draggable: true, stroke: 'black'}); groupe.add(lineV)

var info = new Konva.Text({
    text: 'info', 
    visible: false,
    stroke: '#fff', fontSize: 35, fontFamily: 'Calibri', fill: '#000',  align: 'center', name: "infoBulle"});
    layer2.add(info);

    groupe.on('dragstart', function () {
        console.log("drag")
        info.visible(true);
    });
      
    groupe.on('dragend', function () {
        console.log("drop");
        info.visible(false)
        console.log(info.isVisible());
    });

    stage.add(layer2.add(groupe))
    stage.draw();
<script src="https://unpkg.com/konva@2.4.2/konva.min.js"></script>
<div id="container" width="400" height="250" style="border: 2px solid red;"></div> 

每次更新图层时都需要重新绘制图层。第一次显示文本更新是可见的,因为 Konva 在 dragmove 操作时自动更新图层。

var stage = new Konva.Stage({ container: 'container', width: 400, height: 250 });
var layer2 = new Konva.Layer(); var groupe = new Konva.Group({})

var lineV = new Konva.Rect({ x: 50, y: 50, width: 70, height: 50, draggable: true, stroke: 'black'}); groupe.add(lineV)

var info = new Konva.Text({
    text: 'info', 
    visible: false,
    stroke: '#fff', fontSize: 35, fontFamily: 'Calibri', fill: '#000',  align: 'center', name: "infoBulle"});
    layer2.add(info);

    groupe.on('dragstart', function () {
        console.log("drag")
        info.visible(true);
        layer2.batchDraw();
    });
      
    groupe.on('dragend', function () {
        console.log("drop");
        info.visible(false)
        layer2.batchDraw();
        console.log(info.isVisible());
    });

    stage.add(layer2.add(groupe))
    stage.draw();
<script src="https://unpkg.com/konva@2.4.2/konva.min.js"></script>
<div id="container" width="400" height="250" style="border: 2px solid red;"></div>