#android #react-native #expo #contacts #react-native-flatlist
#Android #react-родной #expo #Контакты #react-native-плоский список
Вопрос:
Я создаю мобильное приложение, в котором я хочу перечислить свои контакты и их телефонные номера. Я использую expo contacts и компонент flatlist, где я хочу отобразить имя контакта и номер телефона.
Итак, проблема в том, что я не могу понять, как добавить phonenumber в компонент flatlist.
const [ contact, setContact ] = useState([])
const getContacts = async () => {
const { status } = await Contacts.requestPermissionsAsync()
if (status === 'granted') {
const { data } = await Contacts.getContactsAsync({
fields: [Contacts.Fields.PhoneNumbers]
})
if (data.length > 0) {
setContact(data)
console.log(contact)
}
}
}
Вот моя функция для получения списка контактов.
Компонент Flatlist:
<FlatList
keyExtractor={item => item.key}
renderItem={({item}) =>
<View style={styles.listcontainer}>
<Text style={styles.textProduct}>{item.name}</Text>
<Text style={styles.textAmount}>{item.number}</Text>
</View>}
ItemSeparatorComponent={listSeparator}
data={contact}
/>
консоль.журнал показывает, что номер находится в отдельном массиве, внутри объекта, который возвращается из функции «getContacts».
Я не могу понять, как получить номер из массива. Я пытался использовать item.PhoneNumbers.number безрезультатно.
Спасибо за ответы в будущем. Я рад предоставить другую информацию о проблеме.
Ответ №1:
item.phoneNumbers
содержит один или несколько номеров. Чтобы получить первый номер каждого из каждого элемента, который вы могли бы использовать item.phoneNumbers[0].number
.