2017-02-20 7 views
1

Я использовал выборку апите вызов для доступа к данным в формате JSON и получается, что при доступе к данным, которые я установил в источнике данных, который он возвращаетРеагировать Native: Доступ к данным в формате JSON

Предупреждение: [ TypeError: undefined не является abject (оценка «response.data.onwardflights»)]

Я уверен, что правильно взял данные, как я видел данные, выполнив его регистрацию.

Я также приложил исходный код для того же! Пожалуйста, помогите мне!

'use strict'; 

import React, {Component} from 'react'; 
import {StyleSheet, View, Text, ListView, ScrollView} from 'react-native'; 

const ds = new ListView.DataSource({rowHasChanged: (row1, row2) => row1 !== row2}); 

class BusList extends Component { 

    constructor() { 
    super(); 
    // const ds = new ListView.DataSource({rowHasChanged: (row1, row2) => row1 !== row2}); 
    this.state = { 
     dataSource: ds.cloneWithRows([]), 
     getData: [] 
    }; 
    } 

    componentDidMount() { 
     this.loadJSONData(); 
    } 

    loadJSONData() { 
     fetch('api') 
      .then((response) => { 
      this.setState({getData: response}) 
      this.setState({dataSource: ds.cloneWithRows(response.data.onwardflights)}) 
      return response.json() 
      }) 
      .then((responseJSON) => { 
        console.log(responseJSON) 
       return this.setState({dataSource: this.state.dataSource.cloneWithRows(responseJSON)}); 
      }) 
      .catch((error) => { 
      console.warn(error); 
      }); 
    } 

    renderRow(rowData) { 
     return (
      <View> 
       <Text>{rowData.origin}</Text> 
      </View> 
     ); 
    } 

    render() { 
    return (
     <View> 
      <ListView 
       dataSource = {this.state.dataSource} 
       enableEmptySections = {true} 
       renderRow = {(rowData) => <Text>{rowData}</Text>} 
      /> 
     </View> 
    ); 
    } 
} 

module.exports = BusList; 
+0

Можете ли вы опубликовать фактический JSON? –

+0

@Pekka 웃 Ответ json очень большой! Любая альтернатива, чтобы опубликовать его в самом комментарии? –

+0

Только соответствующий бит тогда. Тот, что находится вокруг 'response.data.onwardflights' –

ответ

1

Конечно, response.data.onwardflights будет undefined, потому что вы не применит response.json() перед чтением данных. Сначала вызовите метод и только затем прочитайте данные. Пожалуйста, прочитайте this article

Смежные вопросы