Плоский список пуст, и в массиве есть значения - PullRequest
1 голос
/ 28 апреля 2019

Я заполнил массив querySnapshot, но flatlist ничего не рендерит

Пытался изменить renderItem код

constructor(props) {
  super(props);
  var rootref = firebase.firestore().collection("deneme");
  var wholeData = []
  rootref.get().then(function(querySnapshot){
      querySnapshot.forEach(function(doc) {
        wholeData.push(doc.data())
      });
  });
};

render() {
  return (
    <View>
      <FlatList
         data={this.wholeData}
         renderItem={({item}) => <Text>{item.isim}, {item.soyisim}</Text>}
      />
    </View>
  );
};

1 Ответ

2 голосов
/ 28 апреля 2019

Вам придется использовать setState, чтобы уведомить компонент об изменении данных.Измените свой код, сделав следующее:

 constructor(props) {
      super(props);

      this.state = {
       data: []
      };

      var rootref = firebase.firestore().collection("deneme");
      rootref.get().then(querySnapshot => 
       const wholeData = querySnapshot.map(doc => doc.data()));

       // notify your component that the data has changed
       this.setState({
        data: wholeData
       })
    };

 render() {
  return (
    <View>
      <FlatList
         data={this.state.data} // get your data from the state
         renderItem={({item}) => <Text>{item.isim}, {item.soyisim}</Text>}
      />
    </View>
  );

Таким образом, как только вы получите целые данные, FlatList обновится.

...