为什么我的 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
}
我编写了一个函数来获取 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
}