[ImageViewer] 建议提供ref.current.openPreview之类方法
这个功能解决了什么问题
由于实际开发中,我们期望对某个dom 元素,非图片缩略图,进行操作时,使用某个图片的src 打开图片预览,比如: 对于一个富文本中,点击图片时,触发图片预览的场景,如果监控整个富文本div 时,判断子元素是img ,则呼出图片预览。
你建议的方案是什么
提供ref.current.openPreviewDialog之类的方法,ref.current.openPreviewDialog = ({ src , ...restProps}) => void。 控制图片预览组件的触发。
👋 @genyuMPj,感谢给 TDesign 提出了 issue。 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。
♥️ 有劳 @Ylushen 尽快确认问题。 确认有效后将下一步计划和可能需要的时间回复给 @genyuMPj 。
trigger 元素有现成的方法 open
也有 visible 可以自由控制是否显示预览器,visible 是受控的,可以控制在任意时机的隐藏或显示
不再新增实例是方法控制是否显示预览器
1、“trigger 元素有现成的方法 open” 并没有在api 里面看到trigger 元素的 open 方法,是哪个版本呢?
2、visible 是受控的,确实能解决一些场景的问题,但是我所提到的使用场景是希望: 受控的通过ref 实例方法传递 图片预览的 图片src
, 即可以通过实例方法传递 images。 目前我们的images 是受控的吗?
trigger 元素有现成的方法 open
也有
visible可以自由控制是否显示预览器,visible是受控的,可以控制在任意时机的隐藏或显示不再新增实例是方法控制是否显示预览器
其实我这边的使用场景主要是有两点要求: 1、 受控的展示预览器,2、不通过固定的trigger 元素 的点击事件触发预览,且预览器展示的图片url 是可控的,可以在触发时 指定,因为我是用于富文本的html 中的图片img元素的预览的。
基于您之前的回复,我也可以trigger 元素指定为要监听的父元素,但是仍然需要img 是可控的哈。
这里图片预览器的images 里面的img 是可控的吗? 我可以在在trigger open 执行前,修改吗?
不好意思哈,之前demo 代码没看仔细,没注意到trigger 是有入参的。
基于open 这个入参,是否我们可以支持open可以指定images 呢? 就是 const trigger = ({open}) => <Button onClick={() => open(images)}>预览单张图片</Button>
实现images 的受控。(当然,如果我们images 属性本身就是受控的, 也可以)
我理解为,所有组件的 99% 的属性都是受控的。不大会存在不受控的属性。images 也是99.99% 支持受控的
如果你经过实践,发现了不受控的哪个属性,提供下可以复现问题的代码。
这个 Issue 被标记为了过时 stale ,因为它已经持续 30 天没有任何活动了。删除 stale 标签或评论,否则将在 7 天内关闭。
此 Issue 被自动关闭,因为它自被标记为过时 stale 以来已闲置 7 天。