我正在尝试使用Spotify API并移入数组。
const App = () => {
const [isLoading, setIsLoading] = useState(true);
const [dataSource, setDataSource] = useState();
useEffect(() => {
return fetch("https://api.spotify.com/v1/me/albums?offset=0&limit=5", {
method: "GET",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
Authorization:
"Bearer AUTH CODE "
}
})
.then(response => response.json())
.then(responseJson => {
setIsLoading(false);
// console.log(responseJson);
// let result = Object.values(responseJson); // if I want to convert it in array
let result = responseJson
setDataSource(result);
});
}, []);
console.log(dataSource);
我得到一个对象
{href: "https://api.spotify.com/v1/me/albums?o`enter code here`ffset=0&limit=5", items: Array(5) ...}
我想进入项目,但是当我这样做时
console.log(dataSource.items);
要么
console.log(dataSource.items[1]);
我懂了
Cannot read property 'items' of undefined
任何的想法?
我的错误在哪里?
最佳答案
dataSource
状态默认为undefined
,您需要更改默认值以具有items
属性。 fetch
正在异步处理then
,因此数据将在几毫秒后到达,并且在这段时间内,代码尝试访问缺少的items
属性。
您可以尝试进行不同的初始化,如下所示:
const [dataSource, setDataSource] = useState({ items: [] });
我希望这有帮助!
关于javascript - 移入Spotify阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60831677/