未声明 无法读取未定义的属性'setState'



我正在使用一个名为unstated 的状态库,当我运行以下代码时:

import { Container } from 'unstated';
import Fire from '../Core/Fire';
class Store extends Container {
state = {
users: [],
};
getAllUsers() {
const db = Fire.firestore();
const reference = db.collection('users');
reference
.get()
.then(snapshot => {
const docs = [];
snapshot.forEach(doc => {
docs.push(doc);
});
this.setState({
users: docs.map(doc => {
return {
id: doc.id,
model: doc.data(),
};
}),
});
})
.catch(error => {
console.error(error);
});
}
}
export default Store;

我收到此错误:

类型错误: 无法读取未定义的属性"setState" 在商店.js:19

我肯定会得到结果,因为docs在我想设置状态时确实包含对象。我也在做与文档/示例中完全相同的事情。

为什么看不到this参考?是因为它是承诺吗?咚!

您应该绑定函数或使用箭头函数。

1.(

constructor(){
this.getAllUsers=this.getAllUsers.bind(this) 
}

2(

getAllUsers = () =>{ ... }

相关内容

  • 没有找到相关文章