Неустановленный Не удается прочитать свойство '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;
Я получаю эту ошибку:
TypeError: Невозможно прочитать свойство 'setState' из неопределенного в Store.js:19
Я определенно получаю результаты как docs
содержит объекты в то время, когда я хочу установить состояние. Я также делаю то же самое, что и в своей документации / примере.
Почему не ссылка this
видели? Это потому что это в обещании? Doh!
1 ответ
Вы должны либо связать функцию, либо использовать функцию стрелки.
1.)
constructor(){
this.getAllUsers=this.getAllUsers.bind(this)
}
2)
getAllUsers = () =>{ ... }