【问题标题】:react-native-contacts getAll return nullreact-native-contacts getAll 返回 null
【发布时间】:2019-03-27 06:23:30
【问题描述】:

根据link,我使用 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')

【问题讨论】:

标签: android reactjs react-native react-native-contacts


【解决方案1】:

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

您还必须按照这些步骤进行链接-

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

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

【讨论】:

  • 试试这个console.log(Contacts),你会发现你是否正确链接了它,以及getAll在Contact对象中的确切位置。
  • 这可能并不总是问题所在,但对我来说,谢谢!
  • 在我的例子中,我忘记在 AndroidManifest.xml 文件中添加以下权限: 没有这个权限,你会得到 null当你调用“getAll”时
【解决方案2】:

按照 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);
          })

【讨论】:

    猜你喜欢
    • 2017-07-06
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 2021-10-16
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多