所以我为API调用创建了一个单独的文件,我的API函数如下:
const API_BASE = 'https://api.themoviedb.org/3/';
const TMDB_API_KEY = '{api_key}';
export async function fetchPopularMovies() {
let url: string = `${API_BASE}movie/popular?api_key=${TMDB_API_KEY}`;
const response = await axios.get(url);
return response.data;
}
正如我所猜测的,这个函数返回了一个promise,所以我想从中获得一个数据
const [movies, setMovies] = useState<IMovie[]>();
useEffect(() =>{
const response = fetchPopularMovies();
setMovies(response);
}, [])
它应该将movies设置为我从函数中得到的响应,但函数是一个promise,所以我不能这样做。我想知道如何获取数据,我在函数内部制作了return response.data
,但它返回了promise,因此我试图猜测我可能做错了什么。
使用then
const [movies, setMovies] = useState<IMovie[]>();
useEffect(() =>{
fetchPopularMovies().then((response) => {
setMovies(response);
});
}, [])