我正在学习React,我遇到了一个我自己无法解决的问题。
我试图从API中获取数据,但却得到了一个未定义的数组。
我创建了axios.js
import axios from "axios";
const instance = axios.create({
baseURL: "http://api.weatherapi.com/v1/",
});
export default instance;
Requests.js
const API_KEY = '7be85e2711194910b29123355231904';
export const fetchDataByCity = (city) => {
return `current.json?key=${API_KEY}&q=${city}&aqi=no`;
}
Page.js
import axios from "../../axios"
import { fetchDataByCity } from "../../Requests";
import { useEffect, useState } from "react";
const Page = props => {
const [data, setData] = useState([]);
useEffect(() => {
async function fetchData() {
let request = [];
request = await axios.get(fetchDataByCity("London"));
setData(request.data.results);
return request;
}
fetchData();
}, []);
console.log(data);
return (
<div >
hey
</div>
);
}
export default Page;
当我尝试在控制台中显示数据时,我得到undefined
1条答案
按热度按时间jv4diomz1#
它是
undefined
,因为你试图从响应中访问results
键,但没有从响应中返回键。响应是一个对象,你需要从响应中返回数组。这是response,请检查。
解决方法可以像在对象中初始化数据状态并在响应后设置