在 setState 行上获取错误“无法读取未定义的属性“setState””

时间:2021-02-26 02:15:48

标签: javascript reactjs firebase google-cloud-firestore

由于某种原因,我不断收到此错误,但我不明白为什么,错误是

enter image description here

这是下面代码的相关部分,我将两个对象作为道具传递给这个 DashBoard 组件,一个是 firebase 用户对象,另一个是我用来从 firebase 检索一些数据的数据库对象,我检查了并且这两个对象已正确导入(如注释的控制台日志所示),但我不断收到此错误,我不知道为什么?

import React from 'react';


export default class Dashboard extends React.Component {
  constructor(props) {
    super(props);
    this.state = {dataArray: []};
  }

  async componentDidMount() {
    console.log("i am inside dashboard");
    //console.log(this.props.user);
    //console.log(this.props.database);

    let database = this.props.database;

    const docRef = database.collection("Some_Collection_here").doc("Some_Id_here")
    let dataRetrieved = null;

    docRef.get().then(function(doc) {
      if (doc.exists) {
        const dataRetrieved = doc.data();
        this.setState ({dataArray: dataRetrieved});
      } else {
        console.log("Error: no such document exists");
      }
    })
  }

  render() {
    return (
      <div>

      </div>
    );
  }
}

1 个答案:

答案 0 :(得分:3)

我明白你的问题。 我觉得这样就可以了。

5

原因是:

  1. 这个上下文
  2. 词法范围