React JS 地图卡片图像
2020-11-27
126
当我通过自定义钩子显示加载器组件,然后是地图列表从 API 获取图片列表时。问题 - 卡片项目图片显示时间不同。 在此处输入图片描述
自定义钩子:
import { useState, useEffect } from "react";
export default function useFetch(typeTabByPopular, tabListType) {
const [list, setList] = useState("");
const [page, setPage] = useState("1");
const [loading, setLoading] = useState(true);
useEffect(() => {
setLoading(true);
fetch(
`https://api.themoviedb.org/3/trending/${tabListType}/
${typeTabByPopular}?api_key=${process.env.REACT_APP_API_KEY}&&page=${page}`,
)
.then((response) => response.json())
.then((data) => {
setList(data);
setLoading(false);
});
}, [tabListType, typeTabByPopular, page]);
return { list, setPage, loading };
}
1个回答
所有图像元素都有一个 onLoad 事件,您可以使用它来实现此目标。
由于您有一个图像列表,因此您知道每个页面上应该有多少张图像。
放置一个
loadedImages
计数器,并在每个图像的 onLoad 上使用
setLoadedImages
将其加 1。
直到计数器等于页面上的图像数量,才渲染加载器,当它与图像数量匹配时,渲染图像。
Ran Marciano
2020-11-27