为什么我的 React Native FlatList keyExtractor return 未定义?

Why does my React Native FlatList keyExtractor return undefined?

我编写了一个函数来获取 Firebase 实时数据库中项目的键。 函数:

getKey = (index) => {
    offersRef.on('value', snapshot => {
      let data = snapshot.val();
      const key = Object.keys(data)[index]
      console.log('the key is ' + key)
      return key
    })
  }

FlatList 中的 keyExtractor:

keyExtractor={(item, index) => this.getKey(index), console.log(this.keyExtractor)}

这个函数是在我的FlatList的keyExtractor中调用的。然而,虽然 getKey return 中的 console.log 是正确的值,但 keyExtractor 是未定义的。我不明白这一点 - 两者不应该 return 完全相同的结果吗?

该函数实际上并未返回密钥。虽然快照返回了密钥,但函数本身实际上没有返回任何东西。我通过将代码更改为

来解决此问题
getKey = (index) => {
    let key = 0;
      offersRef.on('value', snapshot => {
        let data = snapshot.val();
        key = Object.keys(data)[index]
      })
      return key
  }