我的响应中有一个滚动事件处理程序,我正在尝试使其变为被动状态。但是它不起作用,我不断在控制台中收到以下警告:


  考虑将事件处理程序标记为“被动”以使页面更多
  反应灵敏。


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

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)


希望这对以后的人有所帮助!

09-12 08:23