繁体   English   中英

Firebase 反应本机 flatlist keyExtractor

[英]Firebase react native flatlist keyExtractor

我在平面列表中显示了一些 firebase 数据,我在使用 keyExtractor 时遇到了问题,我一直有错误:

undefined 不是 object(评估“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'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM