1
我試圖通過props
將一些Firebase數據從一個組件傳遞到另一個組件,但似乎並沒有讓我遍歷子組件中的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數據才能在映射之前解決,如果是的話,我該如何執行此操作?
任何幫助表示讚賞。提前致謝!
感謝您的支持!我不得不把'this.setState()'行放在firebase回調中。這似乎工作! – realph