我想显示所有电话联系人的清单。现在,我有一个对象数组,但平面列表不适用于对象。我尝试了很多在网上找到的东西,但是徒劳无功...
我仍然收到此错误: 不变违规:试图获取超出范围索引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}
/>
)
}
答案 0 :(得分:0)
您可以在if状态下尝试吗
if (contacts.length > 0){
return contacts.map(item => {...item})
}