为什么不能将字符串化的JSON对象放入全局数组中?

时间:2019-05-27 03:42:42

标签: javascript google-cloud-firestore

我正在从Firebase Cloud Firestore数据库中检索数据,并尝试将其放入一个空的全局范围数组中。但是,它们没有被推入,控制台中也没有任何错误。

我尝试添加一些固定对象,这些对象的字段与要插入的对象的字段完全相同,以防对象字段在数组初始化时很重要,但这无济于事。

import React, { Component } from 'react';
import firebase from './firebase/firebase.js';

var list = [
    {
        author: 'bob123',
        name: 'Bob Smith',
        title: 'Bobbie',
    },
    {
        author: 'appleorange',
        name: 'Laura Hills',
        title: 'Time Flies Past'
    }
]

export class BookList extends Component {
    constructor(props) {
        super(props);
        const db = firebase.firestore();
        db.settings({ timestampsInSnapshots: true});
        db.collection("books").get().then((querySnapshot) => {
            querySnapshot.forEach((item) => {    
                  let string = JSON.parse(JSON.stringify(item.data()));
                  console.log(string); // successfully prints an object e.g. {author: 'a', name: 'b', title: 'c'}
                  list.push(string);
            });
        });
        console.log(list); // Only prints the original array of objects with Bob and Laura's entries
    }
}

最终的控制台日志应包括新推送的条目,但不包括,这意味着推送失败。我以为可以保留从本地推送到全局变量的更改,但也许我在这里缺少有关JavaScript或编译方式的信息...非常感谢您的帮助或说明!

0 个答案:

没有答案