【发布时间】:2021-03-05 18:45:14
【问题描述】:
我第一次学习状态,并按照一个简单的教程创建了一个 react native 应用程序。本教程没有介绍如何使用 firebase,所以这是我拼凑的。它“有效”,但不会在第一次渲染时提取数据库数据。我知道这是因为获取数据与我的应用程序渲染相比需要时间延迟。但我不知道我应该如何移动逻辑来解决它。我觉得我应该以某种方式使用 .then ?还是我做的这一切完全错了……
import {db} from '../../src/config.js';
let initialMessages = [];
db.ref().once('value', (snapshot) =>{
snapshot.forEach((child)=>{
child.forEach(function(childChildSnapshot) {
initialMessages.push({
id: childChildSnapshot.key,
title: childChildSnapshot.val().title,
})
})
})
})
.then()
.catch((error) => {console.error('Error:', error)});
function MessagesScreen(props) {
const [messages, setMessages] = useState(initialMessages);
return (
<Screens>
<View style={styles.wholeThing}>
<FlatList
data={messages}
keyExtractor={(messages) => messages.id.toString()}
renderItem={({ item }) => (
<Card
title={item.title}
onPress={() => console.log("hi")}
/>
)}
ItemSeparatorComponent={ListItemSeparator}
contentContainerStyle={styles.messagesList}
refreshing={refreshing}
onRefresh={}
/>
</View>
</Screens>
);
}
export default MessagesScreen;
【问题讨论】:
标签: javascript react-native firebase-realtime-database