Как использовать phonenumber из expo.contacts

#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 .