去抖工作名称 - 工作名称问题

时间:2018-01-20 02:41:56

标签: polymer polymer-1.0

使用Polymer 1.0 ...

debounce方法期望作业名称是某种对象。我得到Cannot read property 'foo' of undefined

documentation开始,作业名称是一个字符串。我以为作业名称只是为了稍后引用去抖动对象,但我想我错了。

我在这里做错了什么?请注意,这是在自定义元素之外,这就是我使用Polymer.Base

的原因
function scrollSnap() {
  Polymer.Base.debounce('foo', ()=> {
    if (app.selected === 'portfolio') {
      if (panel.scroller.scrollTop > 75 && panel.scroller.scrollTop < 200) {
        panel.scroller.scrollTop = 400;
      } else if  (panel.scroller.scrollTop > 350 && panel.scroller.scrollTop < 400) {
        panel.scroller.scrollTop = 0;
      }
    }
  }, 1000)
} 

1 个答案:

答案 0 :(得分:1)

这是因为内部去抖动图未初始化,因此当Polymer尝试进行去抖动器名称查找时,它会取消引用未初始化/未定义的数组。

由于此debouncer调用正在Polymer元素之外使用,因此您必须手动调用通常在元素初始化中完成的设置函数(即{{3 }}):

Polymer.Base._setupDebouncers();

for (let i=0; i<100; i++) {
  Polymer.Base.debounce('foo', () => console.log('debounced'), 1000);
}

_setupDebouncers()