Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修改了label标签属性不会自动更新视图,更新之后获取属性也是正确的 #4440

Closed
zw-store opened this issue Sep 12, 2024 · 5 comments

Comments

@zw-store
Copy link

问题描述

修改了label标签属性不会自动更新视图,更新之后获取属性也是正确的,这些问题好搞人,没有群么,动不动提issue,还要复现场景,我的例子都是一整套的,单独布置真麻烦,相关例子解决方案又没有帖子。github 的问题一堆没关闭。弄得心好累。一个修改label的例子弄一天了都

重现链接

重现步骤

    propertyLabelChange(index, property, value) {
      const originLabel = this.nodeData.getLabelAt(index)
      const label = util.merge(originLabel, transformInput(property, value), true)
      this.nodeData.setLabelAt(index, label)
      console.log(this.nodeData.getLabelAt(index))
      /**
        {
            "attrs": {
                "text": {
                    "text": "Hello Labdasdelmmdasdam",
                    "fill": "#211C1C"
                }
            },
            "position": {
                "distance": 0.1,
                "offset": [
                    0,
                    0
                ]
            }
        }
       */
            }

拖拽标签的时候会修改视图刚刚打印的值

预期行为

能有更新视图属性,当保存时可以将修改的属性 toJSON 。
可以有交流群吗,有个小问题,文档看一天,issue 也难翻

平台

操作系统: [macOS, Windows, Linux, React Native ...]
网页浏览器: [Google Chrome, Safari, Firefox ...]
X6 版本: [1.35.1 ...]

屏幕截图或视频(可选)

No response

补充说明(可选)

No response

@zw-store
Copy link
Author

image 我补充一下,我属性修改了,还是没有触发页面改动,在这一刻鼠标拖动标签就能应用刚刚修改的属性,我查询文档也没手动更新的节点相关的方法,还有标记一些 cell节点的 label 时,第一次不会更新,多次修改就会再执行更新,这个是 bug 么。

@zw-store
Copy link
Author

代码地址上传到github:https://github.com/zw-store/vite-x6-vue2.git

@cnyballk
Copy link
Contributor

  1. 关于移动才能触发修改,可以看看 const originLabel = this.nodeData.getLabelAt(index) 深拷贝一下再修改
    2.关于第一次不会更新可以看看表单绑定的v-model,也深拷贝一下再设置
    image

建议复杂数据类型的修改都拷贝一下再给vue(vue需要监听对象,可能会对属性修改,从而做一些处理导致问题产生),以及修改设置

@cnyballk
Copy link
Contributor

cnyballk commented Sep 14, 2024

交流群有钉钉哈,
image

@zw-store
Copy link
Author

  1. 关于移动才能触发修改,可以看看 const originLabel = this.nodeData.getLabelAt(index) 深拷贝一下再修改
    2.关于第一次不会更新可以看看表单绑定的v-model,也深拷贝一下再设置
    image

建议复杂数据类型的修改都拷贝一下再给vue(vue需要监听对象,可能会对属性修改,从而做一些处理导致问题产生),以及修改设置

感谢你的回答。我参考你这个方法进行了调整,将属性需要深克隆一份再进行调整,成功解决了我的问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants