繁体   English   中英

为滚动反应被动事件处理程序

[英]react passive event handler for a scroll

我的反应中有一个滚动事件处理程序,我试图让它被动。 但它不起作用,我在控制台中不断收到此警告:

考虑将事件处理程序标记为“被动”以使页面更具响应性。

所以这是我阅读事件的地方:

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: boolean} 不可分配给参数类型 boolean

有谁知道我在这里做错了什么?

任何帮助表示赞赏!

现在回答可能有点晚了,但我遇到了同样的问题。 一种解决方法是在传入的对象上使用any类型:

let passiveObject: any = { passive: true }
obj.addEventListener(evt, func, passiveObject)

希望这对未来的人有所帮助!

没有任何理由让滚动监听器被动! 请仔细阅读文档 - 滚动 div 中的任何触摸轮和点击侦听器都必须是被动的 - 这是被动侦听器的主要目标

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM