Firestore:动态响应渲染组件

时间:2019-03-19 17:12:58

标签: reactjs google-cloud-firestore

我编写了一个小代码,在其中我在Firestore中获取集合的大小,然后将其呈现在for循环中。当我将一个数字放入for循环中时,效果很好。但是,当我尝试放入尺寸时,它不起作用。

import React, { Component } from 'react';
import './App.css';

import Title from './comonents/Title'
import Player from './comonents/Player'
import RoundTest from './comonents/RundeTest'

import db from './FirestoreConfig';


class App extends Component {

  componentDidMount(){
    db.collection('player').get().then(snap => {
      size = snap.size
      console.log(size);
    })
  }

  createRunde = () => {
    let runde = []
    // 5 is here the number 
    for (let i = 1; i < 5; i++) {
      runde.push(<div id="runde"><RoundTest rundeComp={i}/></div>)
    }
    return runde
  }


  render() {
    return (
      <div className="APP">
        <div id="title">
          <Title/>
        </div>
        <div id="player">
          <Player/>
        </div>

        <div id="runderoot">
          {this.createRunde()}
        </div>
      </div>
    );
  }
}

export default App;

有人想解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您遇到一些范围问题。由于您要根据尺寸更新渲染,因此最好将尺寸存储在state中,并在获取快照后调用setState。