react-native-contacts getAll 返回 null

Posted

技术标签:

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

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

 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')

【问题讨论】:

React Native: Possible unhandled promise rejection的可能重复 【参考方案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);
          )

【讨论】:

以上是关于react-native-contacts getAll 返回 null的主要内容,如果未能解决你的问题,请参考以下文章

Ember.get() 和 this.get() 的区别

使用 set; get; 而不是 get;放;

C语言中如何用 gets(),put()

node 怎么获取get的参数

get请求

访问PHP发送多个get请求