当我运行以下代码时,我正在使用一个名为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;
我收到此错误:
TypeError:无法读取未定义的属性“ setState” 在Store.js:19
我肯定会返回结果,因为docs
确实要设置状态时包含对象。我也在按照文档/示例中的方式做事。
为什么看不到引用this
?是因为承诺吗? h!
答案 0 :(得分:1)
您应该绑定该功能或使用箭头功能。
1。)
constructor(){
this.getAllUsers=this.getAllUsers.bind(this)
}
2)
getAllUsers = () =>{ ... }