2017-09-26 4 views
0

ich die von meiner abgerufenen Werte anzeigen kann Das ist mein Code,reagieren-native Wert kann nicht angezeigt bekam in meinem holen

meiner holen, aber ich erhalte ‚null ist kein Objekt‘:

import React, {Component} from 'react'; 
import { StyleSheet, Image, Text, View, TextInput, StatusBar, Button,   
AppRegistry, TouchableHighlight, TouchableOpacity } from 'react-native'; 
import AndroidBackButton from 'react-native-android-back-button' 
import { StackNavigator } from 'react-navigation' 

export default class ComponenFive extends React.Component { 

getInfos(){ 
    fetch('http://172.16.101.183:3000/users', { 
     method: 'POST', 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json', 
     }, 
     body: JSON.stringify({ 
      requestType: 'infosCompte' 
     }) 
    })    
    .then((response) => response.json()) 
    .then((res) => { 
      this.setState({username: res.username, nom: res.nom, prenom: res.prenom, lieu: res.lieu, batiment: res.batiment, bureau: res.bureau}); 
    }) 
    .done(); 
} 


render() { 
    {this.getInfos} 
    return ( 
     <View style={{backgroundColor: 'white', flex: 1}}> 
      <Text>Identifiant : {this.state.username}</Text> 
     </View> 
    ) 
} 

}

haben Sie eine Idee haben, mir zu helfen?

Antwort

0

mit fetch erhalten Sie mehr als nur die Daten auf json.

versuchen diesem Beispiel

fetch('http://172.16.101.183:3000/users', { 
     method: 'POST', 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json', 
     }, 
     body: JSON.stringify({ 
      requestType: 'infosCompte' 
     }) 
    })    
    .then(response => response.json().then(json => ({ json, response }))) 
    .then(({ json, response }) => { 
     if (!response.ok) { 
      return Promise.reject(json); 
     } 
     return json; 
    }) 
    .then((res) => { 
      this.setState({username: res.username, nom: res.nom, prenom: res.prenom, lieu: res.lieu, batiment: res.batiment, bureau: res.bureau}); 
    }) 
    .done(); 

UPDATE:

Leider Ihr Code gerade gesehen und ist nicht korrekt. Die Verwendung von {this.getInfos} in render() ist falsch. getInfo ist nur eine Funktion. Du gibst nichts zurück. Wenn Sie diese Funktion aufrufen wollen wie es componentWillMount verwenden und stellen Sie den Zustand auf Konstruktor

constructor(props) { 
    super(props); 
    this.state = {username: '', nom: ''}; 
} 
componentWillMount() { 
    this.getInfos() 
} 
+0

Vielen Dank für Ihre Antwort, aber ich habe immer noch die gleiche Fehlermeldung –

+0

meine Antwort aktualisiert überprüfen –

+0

Oh, ich wusste nicht, dass! Vielen Dank, es funktioniert jetzt! –

0

res bereits json. ziehe die Daten direkt aus der res.

console.log(res); 
let resData = JSON.parse(res._bodyText); 
this.setState({username: resData.username, nom: resData.nom, .....}) 
Verwandte Themen