我的反应中有一个滚动的事件处理程序,我试图让它变得被动。但它不起作用,我一直在我的控制台中收到这个警告:
考虑将事件处理程序标记为“被动'使页面更多 responive。
所以这是我阅读活动的地方:
bindEventListeners()
{
EventContainer.readWindowEvent('scroll', this.onScroll);
}
这是我的EventContainer.js文件中的readWindowEvent函数:
static readWindowEvent(slug, callback, passive = true)
{
let result = null;
let allowed = this.getAllowedWindowEventListeners().indexOf(slug) != -1;
if (!allowed) {
result = console.error(
'You cannot register ' + slug + ' on the window. Allowed events: ' +
this.getAllowedWindowEventListeners().join(', ')
)
}
if (allowed) {
result = window.addEventListener(
slug,
callback,
{passive: passive}
);
}
return result;
}
在这一行:
{passive:passive}
我的编辑器中出现以下错误 参数类型boolean
不能赋予参数类型{passive:boolean}任何人都知道我在做错了什么?
感谢任何帮助!
非常感谢提前:)
答案 0 :(得分:0)
现在回答可能有点迟,但我遇到了同样的问题。解决方法是在传入的对象上使用any
- 类型:
let passiveObject: any = { passive: true }
obj.addEventListener(evt, func, passiveObject)
希望这可以帮助将来的某个人!
答案 1 :(得分:-1)
没有任何理由让滚动侦听器被动! 请仔细阅读文档 - 任何触摸轮&滚动div中的单击侦听器必须是被动的 - 它是被动侦听器的主要目标