Javascript 进入Spotify阵列
我正在尝试使用Spotify API并进入阵列Javascript 进入Spotify阵列,javascript,arrays,reactjs,api,react-native,Javascript,Arrays,Reactjs,Api,React Native,我正在尝试使用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",
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);
或
我明白了
Cannot read property 'items' of undefined
有什么想法吗?
我的错误在哪里?默认情况下,
数据源
状态为未定义
,您需要将默认值更改为具有项
属性。fetch
正在异步处理then
,因此数据将在几毫秒后到达,在此期间,代码尝试访问缺少的项
属性
您可以尝试进行不同的初始化,如下所示:
const [dataSource, setDataSource] = useState({ items: [] });
我希望这有帮助 你的解决方案非常有效。现在如果我使用
const data=Object.values(dataSource).map(function(item){return{item:item,{dataSource[item]};})
并且如果我使用console.log(data[1])
我得到item:Array(5)}item:(5)[{…},{…},{…},{…},{…},{…},{…},{…}]
但是我不知道如何进入它来获取值。有什么想法吗?
const [dataSource, setDataSource] = useState({ items: [] });