我试图从我的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>
);
}
}
所以这里的问题是什么,因为你可以看到我的web api很好,我检查我的FirstName状态是否也有来自AsyncStorage的数据,没有错误信息,这里有任何建议吗?感谢
更新 我想我知道这里发生了什么,当我试图在主体中对FirstName进行硬编码时效果很好,但是当我将身体改为状态时它将无法工作,这里有任何建议
答案 0 :(得分:0)
链接响应应该更像这样,特别是response.json部分。然后你应该在console.log中找到一个Object。
.then(response => response.json())
.then(response => {
console.log(response);