Обратный вызов getContactsAsync() существует в модуле ExponentContacts, но только один обратный вызов может быть зарегистрирован для функции в собственных модулях.

У меня есть фрагмент кода, который использует Expo.Contacts.getContactsAsync() для получения списка контактов с телефона. Я прошу только PHONE_NUMBERS.

В возвращаемом списке я проверяю, доступно ли изображение, и если да, то использую Expo.Contacts.getContactByIdAsync с опцией THUMBNAIL.

Все это отлично работает в iOS, но на Android я получаю вышеуказанную ошибку, и я понятия не имею, что делать и почему это происходит.

Если люди хотят увидеть код, я могу воспроизвести его здесь, но, как я уже сказал, он отлично работает на iOS, поэтому я ищу совета о том, что означает это сообщение.


person raarts    schedule 04.07.2017    source источник
comment
Мое дикое предположение заключается в том, что вы используете переменную состояния в функции, которую вы регистрируете для собственного модуля, вы должны поделиться своим кодом.   -  person Burak Tokak    schedule 05.07.2017


Ответы (1)


Оказывается, идентификаторы контактов — это целые числа в Android и строки в iOS. Не путайте их в своем собственном коде, иначе произойдут странные вещи.

В итоге я преобразовал все целочисленные идентификаторы Android в строки, прежде чем принимать их в свой собственный код.

person raarts    schedule 05.07.2017