我们刚为Ember-application安装了一个错误跟踪器,报告的唯一错误是Cannot read property 'find' of undefined
。导致此错误的代码位于组件中,如下所示:
this.set('interval', setInterval(() => {
const current = this.get('counter') - 1;
this.set('counter', current);
this.$().find('.countdown-number').text(current); // <- error here
}, 1000));
我不明白这是怎么发生的。 $()
如何定义,因为它是ember框架的一部分?
根据错误跟踪器,它适用于许多不同的浏览器,例如最新的Chrome。但是,我无法在任何浏览器中重现错误。
我知道这不是&#34; ember方式&#34;更新div中的文本,但我宁愿不必重建很多,我只想尽可能少地修改bug。
答案 0 :(得分:1)
this.$()
将不确定。请确保仅在组件位于DOM中时调用this.$()
,并在willDestroyElement
上删除所有可以访问this.$()
的事件。