Firebase react native flatlist keyExtractor



我在平面列表中显示一些firebase数据,并且我的keyExtractor有问题,我一直有错误:

undefined不是对象(正在评估"item.id"(我已经在firebase中为我的所有数据添加了一个id字段,并确保它们是一个字符串,但它仍然无法将其识别为id。

function Squad() {
const [gk, setGk] = useState([]);
useEffect(() => {
db.collection('squad').orderBy('position').get().then(snapshot => {
const gkData = snapshot.map(doc => {
const playerObject = doc.data();
return { name: playerObject.name, number: playerObject.number, id: playerObject.id };
});
setGk(gkData);
console.log(setGk);
});
}, []);
const Item = ({ name, number }) => (
<View style={styles.item}>
<Text style={styles.itemText}>{number} - {name}</Text>
</View>
);
const renderItem = ({ item }) => (
<Item name={item.name} number={item.number} />
)
return(
<View>
<View style={globalStyles.bar}>
<Text style={globalStyles.barText}>goalkeeper</Text>
</View>
<FlatList 
data={setGk}
renderItem={renderItem}
keyExtractor={item => item.id}
/>
</View>
)
}

传递到Flatlist的数据是setter函数!你想传入"gk"而不是"setGk">

最新更新