为什么 response.data 未定义?
2017-12-27
7150
我正在使用 React Native 中的 API 获取数据。在控制台中获取数据时,成功获取数据。但在使用以下代码时,专辑数组显示未定义。
state = { albums: [] };
componentWillMount() {
//fetch('https://ws.audioscrobbler.com/2.0/?method=chart.gettoptracks&api_key=881262b246e1d3f2abda8771b1a25fe3&format=json')
fetch('https://rallycoding.herokuapp.com/api/music_albums')
.then(response => this.setState({ albums: response.data }));
}
我收到如下控制台日志
{albums: Array(0)
{albums: undefined
为什么这是未定义的?
1个回答
Response
对象
没有
data
属性。您可以通过调用
text
、
json
、
blob
或
arrayBuffer
方法并使用它们返回的承诺来访问响应主体。
例如,如果您收到JSON:
fetch('https://rallycoding.herokuapp.com/api/music_albums')
.then(response => response.json())
.then(data => this.setState({ albums: data }));
实例:
fetch('https://rallycoding.herokuapp.com/api/music_albums')
.then(response => response.json())
.then(data => {
console.log(data);
});
或者我们可以调用参数
albums
并使用简写属性符号:
fetch('https://rallycoding.herokuapp.com/api/music_albums')
.then(response => response.json())
.then(albums => this.setState({ albums }));
T.J. Crowder
2017-12-27