为什么我不能从React Native中的Object.entry中得到正确的结果?

问题描述 投票:0回答:1

我有一个函数getKey(index),可以在特定的索引处获得一个数据数组的键。然而,这首先需要进行过滤,使用一个名为byAuthor的函数。然而,当我尝试将这个函数与getKey结合使用时,它并没有按照我的期望工作。这可能是某种逻辑错误,但我真的不知道如何得到想要的结果。

getKey = (index) => {
    offersRef.on('value', snapshot => {
      let data = snapshot.val();
      if (data) {
        let fullData = _.filter(Object.entries(data).map(([key, value]) => {
          return byAuthor(value, firebase.auth().currentUser.uid)
        }))
        this.setState({ fullData })
      }
      console.log('the key is' + Object.keys(this.state.fullData)[index])
    })
  }

这个函数应该记录对象的键,如下图所示。enter image description here然而,它记录的是0。显然this.state.fullData=0,1,2,3。这个项目的截止日期很快就到了,所以如果有人能帮助我,那就太好了。谢谢!

编辑:我又测试了一下,如果我添加了 console.log(Object.keys(data)) 它能打印出我要找的键。但是一旦我用fullData运行它,键就变成了0, 1, 2, 3。

javascript arrays react-native react-native-firebase
1个回答
0
投票

FullData是一个数组,所以 Object.keys(this.state.fullData)[index] 将永远返回指数。你希望得到什么?

© www.soinside.com 2019 - 2024. All rights reserved.