React Native新手,我在控制台中打印了我的数据,但没有呈现列表项?test
是我的useState
中的数据。
下面是我的代码:
export default function HomeScreen({ navigation }) {
const [loading, setLoading] = useState(true);
const [test, setTest] = useState([]);
let loadData = async () => {
const q = query(collection(FIREBASE_FIRESTORE, "test"));
const qSnap = await getDocs(q);
let testData = [];
qSnap.forEach((doc) => {
let documentData = doc.data();
documentData.id = doc.id;
test.push(documentData);
});
setTest(testData);
setLoading(false);
};
if (loading) {
loadData();
return <ActivityIndicator style={style.indicator} />;
} else {
return (
<View style={style.container}>
<FlatList
alwaysBounceVertical={true}
keyExtractor={(item) => item.id}
data={test}
renderItem={({ item }) => (
<View style={style.cell}>
<Text style={style.text}>{item.title}</Text>
</View>
)}
/>
</View>
);
}
}
2条答案
按热度按时间k75qkfdt1#
在组件主体中调用
loadData()
不正确。您应该使用useEffect
来获取数据。此外,您创建了testData
,但您只在forEach
中推送test
。这应该可以工作:wlwcrazw2#