0
我在編碼方面很新穎。我正在研究ReactJS,我試圖在Firebase中的數據庫中顯示所有不同類別的列表。 你可以看到我寫的代碼如下:React JS - 使用地圖方法的組件中的Firebase顯示數據
import Link from 'next/link'
import React, { Component } from 'react'
import firebase from 'firebase'
export default class extends Page {
constructor() {
super()
this.state = {
datas: ''
}
}
componentDidMount() {
firebase.initializeApp(clientCredentials)
// ------- Connect to the firebase DATABASE -------- ////
firebase.database().ref().orderByChild("sectionIndex")
.on("child_added",
snapshot => {this.setState({datas: snapshot.val().category});},
error => {console.log("Error: " + error.code);});
}
render() {
return (
<ul>
{this.state.datas.map((data, i) =>
<li key={i}> {data.category} </li>
</ul>
)
}
}
它說,TypeError: this.state.datas.map is not a function
。 我認爲,從火力的數據不是一個數組,也許這就是爲什麼我有這樣的消息錯誤...
這裏是我的數據庫看起來像在火力地堡: DB
也許數據庫不是一個數組[]但對象{}這是爲什麼?如果是的話,我怎樣才能將它轉換成一個數組。
只是控制檯登錄'this.state.datas',看看它是什麼樣子。 Firebase沒有集合,因此它可能只是一個簡單的Object,其數字就是鍵。要轉換爲一個數組,看看這個問題:https://stackoverflow.com/questions/6857468/converting-a-js-object-to-an-array – VanDanic