如何检查项目是否已加载?
我有三种不同的项目类型:课程,软件包和程序。我可以全部过滤,也可以通过前面提到的三种类型进行过滤。我如何检查所有项目都被加载的情况,而不仅仅是单独的这三个项目?我想显示一个加载旋转器,以防项目未加载。到目前为止,这就是我所拥有的:
const [isLoading, setIsLoading] = React.useState<boolean>(false);
React.useEffect(() => {
setCourses([]);
setPrograms([]);
setPackages([]);
if([DataType.Course, "all"].includes(contentType))
Course.get(undefined, useCatalog, parent).then(async (c: Course[]) => {
setCourses(c || []);
setIsLoading(false)
})
if([DataType.Program, "all"].includes(contentType) && (!parent || parent.data_type === DataType.Package))
Program.get(undefined, useCatalog, parent).then((p: Program[]) => {
setPrograms(p ||[]),
setIsLoading(false)
});
if([DataType.Package, "all"].includes(contentType) && !parent)
Package.get(undefined, useCatalog).then((p: Package[]) => {
setPackages(p || []),
setIsLoading(false)
});
}, [contentType, useCatalog, parent]);
I have three different item types: courses, packages and programs. I can either filter by All, or by the three Types mentioned before. How can I check the case in which ALL items are loaded, not just these three individually? I want to show a loading spinner in case the items are not loaded. Here's what I have so far:
const [isLoading, setIsLoading] = React.useState<boolean>(false);
React.useEffect(() => {
setCourses([]);
setPrograms([]);
setPackages([]);
if([DataType.Course, "all"].includes(contentType))
Course.get(undefined, useCatalog, parent).then(async (c: Course[]) => {
setCourses(c || []);
setIsLoading(false)
})
if([DataType.Program, "all"].includes(contentType) && (!parent || parent.data_type === DataType.Package))
Program.get(undefined, useCatalog, parent).then((p: Program[]) => {
setPrograms(p ||[]),
setIsLoading(false)
});
if([DataType.Package, "all"].includes(contentType) && !parent)
Package.get(undefined, useCatalog).then((p: Package[]) => {
setPackages(p || []),
setIsLoading(false)
});
}, [contentType, useCatalog, parent]);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
考虑使用3个不同的
isloading
状态?例如isloadingCourses
,isloadingPrograms
,isloadingPackages
然后做类似的事情,或者您可以直接检查诸如此类的项目
consider use 3 different
isLoading
state? e.g.isLoadingCourses
,isLoadingPrograms
,isLoadingPackages
then do something likeor you can check directly the items like