gpt4 book ai didi

react-native - map不是react-native中的函数

转载 作者:行者123 更新时间:2023-12-03 09:26:36 25 4
gpt4 key购买 nike

我想从api获取一些数据并在我的应用程序中显示数据。这是我的代码
类AlbumList扩展了Component {

state = { albums: [] };

async componentWillMount() {
try {
const data = await axios.get(
'https://rallycoding.herokuapp.com/api/music_albums'
);
this.setState({ albums: data });
} catch (err) {
console.error(err.message);
}
}

renderAlbums() {
return this.state.albums.map(album => <Text>{album.title}</Text>);
}

render() {
return (
<View>
{this.renderAlbums()}
</View>
);
}
}


这将产生错误this.state.albums.map不是一个函数。
有什么办法解决这个问题?

最佳答案

由于axios不返回数组,因此发生错误“将其映射为非函数”。
Axios返回一个带有状态,数据等键的对象。

const data = await axios.get(
'https://rallycoding.herokuapp.com/api/music_albums'
);
console.log(data);
console.log(data.data); // album data
this.setState({album: data.data});


当不等待使用时:

axios.get('https://rallycoding.herokuapp.com/api/music_albums')
.then(response => {
this.setState({ album: response.data });
})
.catch(error => {
console.log(error);
});


因此,您必须检查axios get返回的对象键“数据”。

关于react-native - map不是react-native中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56992348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com