如何修复“无法设置未定义的属性” ref”?

时间:2019-04-04 16:58:06

标签: javascript firebase react-native google-cloud-firestore

所以我尝试做的事情非常简单:仅从Cloud Firestore接收数据。

我有以下代码:

import React from 'react';
import firebase from "react-native-firebase";

export default class newsFeed extends React.Component {
 constructor() {
  this.ref = firebase.firestore().collection('keys')
}

 async load(id) {
  const doc = await this.ref.doc(id).get()
  if (doc.exists) {
    return doc.data()
  }
 }
}

我收到错误消息:“无法设置未定义的属性'ref'”。

我该如何解决?有什么问题?

从本教程中了解到它:https://medium.com/react-native-training/firebase-sdk-with-firestore-for-react-native-apps-in-2018-aa89a67d6934

2 个答案:

答案 0 :(得分:0)

通常箭头功能会提供帮助。

 load = async (id) => { //...

答案 1 :(得分:0)

您正在导出类而不创建实例。您应该执行以下操作:

import React from 'react';
import firebase from "react-native-firebase";

class NewsFeed extends React.Component {
 constructor() {
  this.ref = firebase.firestore().collection('keys')
}

 async load(id) {
  const doc = await this.ref.doc(id).get()
  if (doc.exists) {
    return doc.data()
  }
 }
}

export default newsFeed = new NewsFeed();

希望有帮助:)