React Native和Firebase功能作为参考



有人可以解释为什么此代码有效:

this.firebaseRef.on('value', (snapshot) => {//...});

这不是:

const foo = this.firebaseRef.on;
foo('value', (snapshot) => {//...});

在反应新的devtools调试器中,它引发了一个错误: Cannot read property 'Y' of undefined

这很有趣,因为当我设置一个断点并检查

foo === this.firebaseRef.on

它给了我真实的。typeof foo是一个函数。我不明白。 once

也是如此

差异是在调用 on时的 this值。当功能称为对象的成员时,this被绑定到对象。(MDN)当函数值称为独立变量时,this在严格模式下绑定到全局对象或undefined。(MDN)

为了解决问题,您必须bind函数到适当的this值。

const foo = this.firebaseRef.on.bind(this.firebaseRef);
foo('value', (snapshot) => {
  // ...
});

相关内容

  • 没有找到相关文章

最新更新