2017-10-30 4 views
0

Ich versuche, Daten von meinem API abzurufen und legen Sie es im _Data-Status; Ich bekomme jedoch _data immer als undefiniert. Zuerst ziehe ich ein Token aus Asyncstorage vor dem Abrufen und dann möchte ich die Daten vom Abrufen in den Status speichern. Kann jemand bitte überprüfen, ob ich etwas falsch mache?React Native - Daten werden nicht in den Status beim Abrufen

export default class Posts extends React.PureComponent { 
    constructor(props) { 
    super(props); 
    this.fetchData = this._fetchData.bind(this); 
    this.state = { 
     isLoading: true, 
     isLoadingMore: false, 
     _data: null, 
     accessToken: "", 
    }; 
    } 

async componentWillMount() { 
try { 
     let accessToken = await AsyncStorage.getItem(ACCESS_TOKEN).then(JSON.parse); 
     if(!accessToken) { 
      this.redirect('login'); 
     } else { 
     this.setState({accessToken: accessToken}) 
    } 
} catch(error) { 
    console.log("Something went wrong"); 
    this.redirect('login'); 
} 

this.fetchData(responseJson => { 
    const data = responseJson.data; 
    this.setState({ 
    isLoading: false, 
    _data: data, 
    }); 
}); 
}  

    _fetchData(callback) { 
    fetch(`https://mywebsite.com/posts`, 
     { 
     method: 'GET', 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json', 
      'Authorization': "Bearer " + this.state.accessToken.token, 
     } 
    }) 
     .then(response => response.json()) 
     .then(callback) 
     .catch(error => { 
     console.error(error); 
     }); 
    } 

Antwort

0

Wo verlieren Sie speziell den "Daten" -Wert? Sind Sie sicher, dass der responseJson den Wert "data" enthält?

Sie verlieren möglicherweise den Bereich zu dieses nach dem Bind() -Aufruf; versuchen Sie dies:

+0

Froh, dass dies funktioniert! – nocarrier

Verwandte Themen