代码之家  ›  专栏  ›  技术社区  ›  lte__

聚合物-气泡事件不是一个函数

  •  0
  • lte__  · 技术社区  · 6 年前

    我知道这是一个新问题,但我只是不明白,也没有其他类似的问题对这个网站有帮助…

    所以我有一个聚合物物体,我正在做:

      connectedCallback() {
        super.connectedCallback();
        Polymer.RenderStatus.afterNextRender(this, () => {
          this.addSubComponentEventListeners();
          this.addEventListener('connection-type-changed', (e) => {
            this.bubbleEvent(e);
          });
        });
      }
    
      addSubComponentEventListeners() {
       //adding stuff
      }
    
      bubbleEvent(e) {
        console.log(`Bubblin': ${e}`);
        this.fire(e);
      }
    

    由于某些原因,我无法理解,尽管我在同一范围内声明了两个函数 addSubComponentEventListeners 运行没有问题,我得到一个错误 bubbleEvent this.bubbleEvent() is not a function . 有人能解释一下为什么它不是一个函数吗?它在不同的范围内吗?为什么?如何让它运行?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Rickard Elimää    6 年前

    this.bubbleEvent 是一个匿名函数,所以我假设你在错误的范围内。尝试绑定函数。

     this.addEventListener('connection-type-changed', (e) => {
        this.bubbleEvent(e);
      }.bind(this));