没有从Post方法得到响应Json React Native

时间:2018-03-08 04:00:03

标签: javascript reactjs react-native fetch

我试图从我的web api获取数据,请求方法是Post,post方法的主体来自我从登录用户获得的AsyncStorage。之后,resPonseJson被保存到我的状态dataSource,之后我使用flatlist来显示数据。但是数据没有显示出来,当我尝试从Get Method获取数据时,数据显示在我的平面列表中,但当我尝试使用Post方法时

componentDidMount(){
  let FirstName = this.state.FirstName;
return fetch('http:example.com/api/select', {
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
   FirstName: FirstName,
 }),

})
.then((response) => response.json())  
.then((responseJson) => {

  this.setState({
    isLoading: false,
    dataSource: responseJson,
  }, function(){

  });

})
.catch((error) =>{
  console.error(error);
});
}

 render() {


    return(
      <View style={{flex: 1, paddingTop:20}}>
       <FlatList
          data={this.state.dataSource}
          renderItem={({item}) => <Text>{item.LastName}, {item.Gender}</Text>}
          keyExtractor={(item, index) => index}
        />
      </View>
    );
  }
}

enter image description here

所以这里的问题是什么,因为你可以看到我的web api很好,我检查我的FirstName状态是否也有来自AsyncStorage的数据,没有错误信息,这里有任何建议吗?感谢

更新 我想我知道这里发生了什么,当我试图在主体中对FirstName进行硬编码时效果很好,但是当我将身体改为状态时它将无法工作,这里有任何建议

1 个答案:

答案 0 :(得分:0)

链接响应应该更像这样,特别是response.json部分。然后你应该在console.log中找到一个Object。

.then(response => response.json())
.then(response => {

console.log(response);