The issue has been closed
问题描述
第一次selected的时候image显示
点击画布清空状态
第二次select的时候为啥image不显示呢QAQ
重现链接
https://codesandbox.io/s/g6-forked-c5m5lt?file=/index.js
重现步骤
同链接
预期行为
同链接
平台
- 操作系统: [macOS, Windows, Linux, React Native ...]
- 网页浏览器: [Google Chrome, Safari, Firefox]
- G6 版本: [4.5.1 ... ]
屏幕截图或视频(可选)
No response
补充说明(可选)
No response

在添加图片图形的时候,暂时可以改成这样来解决:
const img = group.addShape("image", {
name: "entity-edit",
attrs: {
x: 0,
y: 0,
width: 10,
height: 10,
img:
"https://gw.alipayobjects.com/zos/basement_prod/012bcf4f-423b-4922-8c24-32a89f8c41ce.svg",
cursor: "pointer",
opacity: 0
}
});
group['shapeMap']["entity-edit"] = img;
关键是最后一行。这是因为图形可能从 group 的 shapeMap 取缓存导致的问题。下个小版本我会修复一下这个问题
posted by Yanyan-Wang almost 2 years ago
group['shapeMap']
但是我遇到了一个问题,直接这样写的话在ts中会报错
Element implicitly has an 'any' type because type 'IGroup' has no index signature. Did you mean to call 'group.get'?
改为group.get('shapeMap')['entity-image-icon'] = entityIcon;
的话程序直接报错
TypeError: Cannot set properties of undefined (setting 'entity-image-icon')
把group的类型改为any又有点怪
还有一个问题就是在点击后,再点击画布,图片会闪一下,文字就不会,理论上都是内置节点类型,还有区别嘛(链接已更新)
@Yanyan-Wang
posted by lovelyGFR almost 2 years ago
gif :

posted by lovelyGFR almost 2 years ago
group.get('shapeMap')
这样吧,在设置之前先初始化一下 shapeMap
group.set('shapeMap', group.get('shapeMap') || {})
posted by Yanyan-Wang almost 2 years ago
更新节点 image 会更新渲染,这个是 image 图形的一个问题
posted by Yanyan-Wang almost 2 years ago
group.get('shapeMap')
这样吧,在设置之前先初始化一下 shapeMap group.set('shapeMap', group.get('shapeMap') || {})
不行哎,好像只有那种索引访问的方式最终效果才是正确的
posted by lovelyGFR almost 2 years ago
更新节点 image 会更新渲染,这个是 image 图形的一个问题
后续会考虑优化这点吗,如果画布中图标(图片)较多的话,体验是不是不太好
而使用自定义DOM节点去写图标(图片)的话,G6的很多交互事件又不能使用了,感觉这是一个痛点呢
posted by lovelyGFR almost 2 years ago
group.set('shapeMap', group.get('shapeMap') || {})
group.get('shapeMap')
这样吧,在设置之前先初始化一下 shapeMap group.set('shapeMap', group.get('shapeMap') || {})
不行哎,好像只有那种索引访问的方式最终效果才是正确的
嗷是得 group['shapeMap'],你先 @ts-ignore 一下,下个版本我修掉就不用手动缓存了
posted by Yanyan-Wang almost 2 years ago
更新节点 image 会更新渲染,这个是 image 图形的一个问题
后续会考虑优化这点吗,如果画布中图标(图片)较多的话,体验是不是不太好 而使用自定义DOM节点去写图标(图片)的话,G6的很多交互事件又不能使用了,感觉这是一个痛点呢
暂时没有排期去解,应该只有状态变化的节点可能会出现闪一下
posted by Yanyan-Wang almost 2 years ago