2016-11-05 5 views
0

다른 뉴스 주제에 따라 같은 종류의 json 데이터를 포함하는 다른 URL (엔드 포인트)을 갖게 될 뉴스 포털 용 모바일 앱을 개발 중입니다. 각각의 뉴스 주제를 클릭 할 때 하나의 목록보기를 사용하여이 모든 데이터를 표시하려고합니다. 예를 들어, 내가 뉴스 항목 애플을 클릭하면, 목록보기가 그 주제 애플에 뉴스를 보여주고 난의 바나나을 클릭합니다, 목록보기는 바나나 주제에서 새로운 데이터로 업데이트해야합니다.ListView React Native에서 새 데이터를 자동으로 업데이트하려면 어떻게합니까?

지금까지 클릭 한 주제에서 특정 URL에 'url'상태 값을 설정해 보았습니다. 그러나 예상대로 결과를 얻지 못하고 있습니다.

아무도 과정을 안내해 줄 수 있습니까? 이 게시물에 코드가 없으므로 무시하지 마십시오. 그렇게하는 방법에 대한 아이디어가 필요합니다.

여기, 감사합니다.

+0

검색 뭔가가 자동으로 요청하여 데이터 자체를 업데이트하는 데 도움이 –

+0

1은 엔드 포인트의 데이터는 그 후 당신은 dataSource 온 클릭 이벤트에 업데이트해야 얻을 수 있어야합니다. 2 - 함수를 작성하고 상태에 대한 데이터 소스를 updare하는 데 필요한 afrer 요청을 보내십시오. –

답변

0

프로젝트를 시작하는 데 필요한 몇 가지 코드는 링크를 수정하고 응답을 처리하는 방법입니다. 희망은 도움이 : SyncAdapters에 대한

export default class News extends Component{ 

constructor(props){ 
    super(props); 
    this.dsinit = new ListView.DataSource({rowHasChanged: (r1,r2) => r1 != r2 }); 
    var items = this.dsinit.cloneWithRows([]); 
    this.state = { 
    url:'http://www.google.com', 
    items:items, 
    }; 
} 


renderRow(row){ 
    return <Text>row</Text> 
} 

async fetchNews(){ 
    let response = await fetch(this.state.url,{ 
    method:'POST', 
    body: {data:1} 
    }); 
    let responseJson = await response.json(); 
    this.setState({items:this.dsinit.cloneWithRows(responseJson)}); 

} 

changeTopic(){ 
    this.setState({url:'anotherurl.com'}); 
    this.fetchNews(); 
} 

render(){ 
    return (
    <View> 
    <TouchableOpacity onPress={() => this.changeTopic() /> 
    <ListView dataSource={this.state.items} renderRow={(row) => this.renderRow(row)} /> 
    </View> 
); 
} 

} 
관련 문제