如何将对象数组转换为Flatlist数据-React Native

时间:2019-06-28 18:55:03

标签: arrays react-native object

我想显示所有电话联系人的清单。现在,我有一个对象数组,但平面列表不适用于对象。我尝试了很多在网上找到的东西,但是徒劳无功...

我仍然收到此错误: 不变违规:试图获取超出范围索引NaN的帧。

我现在所拥有的是: 数组[     对象{         “ name”:“ toto”,         “ id”:550,         ...     },     ... ]

我想要的是: 数组[     {         名称:“ toto”,         ID:550,         ...     },     ... ]

我的代码:

async getContactAsync() {
    // permissions

    // Get all contacts from device
    const { data: contacts } = await Contacts.getContactsAsync({
      fields: [
        Contacts.Fields.id,
        Contacts.Fields.name,
        Contacts.Fields.firstName,
        Contacts.Fields.lastName,
        Contacts.Fields.phoneNumbers
      ]
    });

    if (contacts.length > 0) {
      return contacts;
    }
  }

  keyExtractor = (item, index) => index.toString()

  renderItem = ({ item }) => (
    <ListItem
      title={item.name}
      ...
      }
    />
  )

  render () {
    return (
      <FlatList
        keyExtractor={this.keyExtractor}
        data={this.getContactAsync()}
        renderItem={this.renderItem}
      />
    )
  }

1 个答案:

答案 0 :(得分:0)

您可以在if状态下尝试吗

if (contacts.length > 0){
       return contacts.map(item => {...item})
}