当前位置: 首页 > 知识库问答 >
问题:

响应警告非被动事件侦听器到滚动阻止触发器

上官修文
2023-03-14

我有一个反应组件与材料ui滑块。每次这个组件呈现时,我都会收到这个警告:“将非被动事件侦听器添加到阻止滚动的‘触摸启动’事件中。考虑将事件处理程序标记为“被动”,以使页面更具响应性”

如何解决这个问题?

共有2个答案

伏业
2023-03-14

您可以查看github fork以了解有关如何修复的详细信息(问题#20),下面是它的功能:

修改第132、134行

改自:

this.dragTarget.addEventListener('touchmove', this._handleDragTargetDragBound);
this._overlay.addEventListener('touchmove', this._handleCloseDragBound);
this.el.addEventListener('touchmove', this._handleCloseDragBound);

致:

this.dragTarget.addEventListener('touchmove', this._handleDragTargetDragBound, { passive: true});
this._overlay.addEventListener('touchmove', this._handleCloseDragBound, { passive: true});
this.el.addEventListener('touchmove', this._handleCloseDragBound, { passive: true});
尚声
2023-03-14

React不支持被动事件侦听器。您需要做的是获取真实dom的ref,并使用{passive:true}作为选项附加事件侦听器。在销毁组件之前不要忘记分离事件侦听器(在componentWillUnmount中)。

 类似资料:
  • 我在使用角材料的angularjs应用程序中面临性能问题。 我有一个

  • 有没有办法防止事件链中的一些听众为事件开火,但允许链上的其他人开火? 比如我有这个结构 假设我已经将单击事件监听器连接到body、div#1和div#2。是否有可能在div#2事件监听器上阻止事件进入div#1或介于两者之间的任何其他监听器,并允许事件在body元素上触发? 我这样说是因为我使用谷歌地图和emberjs构建了一系列可以在地图上显示的交互式信息框。问题是ember将事件侦听器附加到b

  • 在致力于提高渐进式web应用程序的性能时,我遇到了一个新功能,我发现很难理解这个概念。 什么是被动事件侦听器,在我们的项目中需要它吗?

  • 问题内容: 如何在Java的笔记本电脑触控板上检测到两指滚动?我一直在搜索google,但在这里使用触控板滚动找不到任何内容,更不用说如何收听了。任何帮助将不胜感激。谢谢。 问题答案: 如果这是关于侦听用户滚动,则可以通过在控件中添加MouseWheelListener来实现。有关更多信息,请参见如何编写鼠标轮侦听器。 如果这是关于从触控板而不是鼠标中检测特定事件,则我不知道有任何Java功能可实

  • 单击选择元素显示此警告: [违规]将非被动事件侦听器添加到滚动阻止“鼠标滚轮”事件。将事件处理程序标记为“被动”以使页面更加响应。 问题是,这也扩大了谷歌浏览器中HTML页面的高度。在Chrome版本59.0中测试。3071.86(官方版本)(64位)在firefox中不会出现这种情况。 简单代码:https://jsfiddle.net/gurigraphics/2399mnyb 如果自定义滚动

  • 我通过infinispan缓存添加了CacheEntryExpired侦听器的n实现。addListener()方法。 侦听器事件在条目过期时激发。问题是,每次事件触发两次。 我验证(使用调试器和cache.getListeners())缓存不包含我的同一个侦听器的两个实例。getListeners的结果是: 所以只有一个听众。侦听器实现接口: 一个实现看起来像: 但是从接口中删除@CacheEn