如果我添加document.addEventListener点击,我发现了一个奇怪的行为onMount。
isShow = true,嵌套组件显示。onMount运行的地方document.addEventListener('click')我猜这是因为 Svelte 一次性完成的。我尝试过await tick(),但没有帮助。
我看到解决方案之一是包装document.addEventListener到setTimeout. 它有效,但我认为这是一个错误的决定。
那么,这是正常行为还是错误?
这是一个示例: https://svelte.dev/repl/c89c272ca6c245dabf8451ba950d10c0 ?version=3.6.8
这是预期的行为。最简单的解决方案可能是将{ capture: true }(或只是true)添加为addEventListenerand的第三个参数removeEventListener:https://svelte.dev/repl/daee8509d6634a68b2cf35e53f660e34?version=3.6.8。这是有效的,因为在附加嵌套事件侦听器时事件已离开捕获阶段,并且现在处于冒泡阶段。
| 归档时间: |
|
| 查看次数: |
2501 次 |
| 最近记录: |