【发布时间】:2017-02-13 14:37:59
【问题描述】:
我正在使用 Konva.js@1.3.0 库(带有 React@15.4.2 和 react-konva)来构建一个简单的 2D 游戏。
在 Chrome 中测试应用时一切正常。但是,当我打开开发工具并切换到设备工具栏(以在移动设备大小的视口上查看应用程序)时,我收到以下警告:
由于目标被视为被动,因此无法在被动事件侦听器中阻止默认设置。
见 https://www.chromestatus.com/features/5093566007214080
我已阅读链接并研究了AddEventListener 的{passive: true} 选项。但是,我并没有在我的代码中直接调用AddEventListener,它都是通过 Konva 和 React 抽象出来的。
此外,附加到 Konva 生成的画布元素的点击事件都没有在设备模式下工作。如果我退出设备工具栏,一切正常,点击元素按预期工作。
如何在 Konva/React 中启用被动事件侦听器? (这甚至是解决方案吗?)
【问题讨论】:
-
我不确定这些错误是从哪里来的。但是要启用触摸事件支持,您需要在代码中添加触摸侦听器。例如。添加“onClick”和“onTap”。
-
我之前使用的是
onClick。我应该替换那些(或添加)onTap吗?这需要 Tappable 包吗? -
您不需要任何其他软件包。您只需要添加更多的侦听器(触摸事件和鼠标事件是 Konva 中的不同事件)。
-
我天真地用
onTap替换了onClick,一切都开始工作,没有错误。我不需要任何处理onTap的包,所以我很困惑它是如何工作的。 -
您可以在此处konvajs.github.io/docs/events/Desktop_and_Mobile.html 阅读更多关于 Konva 事件的信息(以及其他相关的“事件”教程)。您可以在此处阅读的所有事件列表:konvajs.github.io/api/Konva.Shape.html#on
标签: javascript dom-events konvajs