react-native-contacts getAll 返回 null

IT技术 android reactjs react-native react-native-contacts
2021-05-05 10:29:13

根据此链接,我使用 react-native-contact 在 android 设备中打开联系人列表,以便用户可以选择一个并将其添加到列表中。但是当我单击按钮打开联系人列表时,react-native-contacts getAll 返回 null。这是我使用的代码:

 openContactlist() {


Contacts.getAll((err, contacts) => {
  if (err) {
   // throw err;
    alert("NO");
  }
  // contacts returned
  alert("yes");

})

 }

在 react native 代码的渲染中有一个按钮,点击它可以调用上面的函数:

<Button
                title="From contact list"
                onPress={this.openContactlist}
              />

错误:

 null is not an object (evaluating '_react-native-contacts.getall')

在此处输入图片说明

2个回答

一个原因可能是您没有正确链接 react-native-contact

您还必须按照以下步骤链接-

对于安卓:https : //github.com/rt2zz/react-native-contacts#android

IOS:https : //github.com/rt2zz/react-native-contacts#ios

按照 react-native-contacts 文档中提到的步骤操作,并在最后添加一个 catch 块,它对我有用。

PermissionsAndroid.request(
            PermissionsAndroid.PERMISSIONS.READ_CONTACTS,
            {
              'title': 'Contacts',
              'message': 'This app would like to view your contacts.'
            }
          ).then(() => {
            con.getAll((err, contacts) => {
              if (err === 'denied'){
                // error
              } else {
                // contacts returned in Array
                console.log(contacts);
              }
            })
          })
          .catch((err)=> {
              console.log(err);
          })