【发布时间】:2016-09-06 00:26:25
【问题描述】:
我正在尝试通过props 将一些 Firebase 数据从一个组件向下传递到另一个组件,但它似乎不允许我遍历子组件中的 Firebase 数据。
App.js
class App extends Component {
constructor(props) {
super(props);
this.state = {
games: []
};
}
componentDidMount() {
const gamesRef = firebase.database().ref('games').orderByKey();
gamesRef.once('value', snap => {
snap.forEach((childSnapshot) => {
this.state.games.push(childSnapshot.val());
})
})
}
render() {
return (
<div className="App">
<Games data={ this.state.games } />
</div>
);
}
}
Games.js
class Games extends Component {
componentDidMount() {
console.log(this.props.data); // this logs successfully
}
render() {
return (
<div className="container">
<div className="Games flex flex-end flex-wrap">
{ this.props.data.map(function (game, i) {
return (
<h1>{ game.title }</h1>
)
}) }
</div>
</div>
);
}
}
由于某种原因,我在尝试通过 props.data 使用 map() 时遇到问题。它肯定会被传递给我的Games 组件,因为它会将console.log(this.props.data) 与从 Firebase 返回的数据一起打印到控制台。
在映射之前我是否必须等待我的 Firebase 数据解析,如果是,我该怎么做?
感谢任何帮助。提前致谢!
【问题讨论】:
标签: javascript reactjs firebase firebase-realtime-database