Неустановленный Не удается прочитать свойство '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 = () =>{ ... }
Другие вопросы по тегам