2017-05-03 5 views
0

영어가 좋지 않지만 문제를 설명하려고 노력할 것입니다.구성 요소 반응 원시 접촉과 함께 연락처 소품 받기

React Native Android에서 연락처의 givenName을 가져 왔습니다.

import React, { Component } from 'react'; 
... 
import Contacts from 'react-native-contacts'; 
... 
class myComponent extends Component { 
... 
render() { 
    Contacts.getAll((err, contacts) => { 
    console.log(typeof err + err); 
    if(err === 'denied'){ 
    // x.x 
    } else { 
    console.log(contacts); 
    console.log("Nombre de contacto: " + contacts[0].givenName); 
    } 
    }) 
    return (
    <Container> 
    ... 
    <View> 
     <Text>{}</Text> 
    </View> 
    </Container> 
); 
} 
} 

그래서, 내가 {}에서 연락처의 이름을 인쇄해야 : 난 단지 상대의 구성 요소 네이티브 접촉 반응을 console.log로 인쇄하기 위해 다음 코드를 사용하여()을 (를) 설치. 나는 그것이 마치 평평한 물건 인 것처럼 그것을 얻으려고 노력했다. 감사!

답변

0

당신은 다음 렌더링

componentWillMount() { 
    Contacts.getAll((err, contacts) => { 
    console.log(typeof err + err); 
    if(err === 'denied'){ 
    // x.x 
    } else { 
     console.log(contacts); 
     console.log("Nombre de contacto: " + contacts[0].givenName); 
     this.setState({contacts}); 
    } 
    }) 
} 

렌더링 및 사용 상태에서 코드를 이동해야합니다() 답변에 대한

<View> 
    <Text>{this.state.contacts[0].givenName}</Text> 
</View> 
+0

감사처럼 될 것입니다. 귀하의 제안을 시도했지만 프로젝트를 실행하면 : 정의되지 않은 '0'속성을 읽을 수 없습니다. –

+0

Contacts.getAll()이 반환하기 전에 렌더링하려고하는 것처럼 들리는데, state.contacts에 대한 null 검사가 문제가 발생해야합니까? –

+0

확인, state.contacts == null을 확인하면 콘솔에 false가 표시됩니다. 그래서 주정부는 {...}에 도착하지 않습니까? –