我想从电影API中获取JSON, 我在变量“ data”中获得了数据,但是即使在加载数据后,我的数组“ allFilms”仍然为空...(请参见下面的代码), 为什么我的数组仍然为空?
const [allFilms, setAllFilms] = useState([]);
const [pending, setPending] = useState(true);
const [activePage, setActivePage] = useState(1)
const url = `https://api.themoviedb.org/3/movie/top_rated?api_key=${process.env.REACT_APP_API_KEY}&language=fr&page=${activePage}`;
useEffect(() => {
loadAllFilms();
}, []);
async function loadAllFilms() {
try {
const data = await axios.get(url);
console.log("data ", data); **<--- THIS CONSOLE.LOG GOT THE DATA**
setAllFilms(data);
console.log("allfilms ", allFilms); **<--- THIS CONSOLE.LOG IS EMPTY**
setPending(false);
} catch (error) {
console.error(error);
}
};
答案 0 :(得分:1)
从您的代码中,我们只能猜测该错误是由您的响应类型引起的。
如果它是JSON array,则应尝试:
const data = await axios.get(url);
setAllFilms(data.json);