Я использую firebase с reactjs, и у меня есть проблема для рендеринга данных, извлеченных из firebase.Как заставить базу данных базы данных Firebase быть синхронной?
Загружает мой компонент loadjs перед данными, поэтому, когда моя веб-страница загружена, она остается пустой в течение короткого времени перед отображением данных.
Но я не хочу, чтобы моя страница загружалась без данных, которые были успешно загружены ранее. Итак, я пытался манипулировать состоянием в конструкторе, но я думаю, что проблема исходит от firebase. Поскольку фаза сбора данных извлекает данные асинхронно даже в constructor()
и componentDidMount()
так что render()
вызывается, даже если пожарная база не закончила отправлять данные.
Как я могу полностью предотвратить реакцию на рендер без firebase, не отправил результат?
constructor(props){
super(props)
post = database.ref().child('posts').orderByKey().equalTo(id)
post.once('value').then(snap => {
// I get the snap here but i don't want my page to render before
// all data queried have been fetched
}).then(function(){
// I've tried to add a "then" callback but it doesn't work
// Render is still displayed too soon
})
}
render(){
let data = this.state.data
return(
// simple example
<span>{this.state.data}</span>
)
}
спасибо.
Спасибо, наконец, за работу. Вы решили мою проблему. Я загружаю все это для ReactDomRender, и теперь все отлично. – John