reactjs - 如何在使用材质 ui Skeleton 组件做出反应的循环阵列上显示多个加载骨架屏幕?
问题描述
我正在处理通过 API 端点获取数据的反应项目。我正在为 UI 组件使用 Material-UI。我想从 material-ui 实现 Skeleton 组件以在等待从后端获取数据时显示加载。
问题是,我可以在获取数据时显示骨架,但我想显示要为数组中正在循环的所有项目显示的骨架组件。
这里有什么工作
这里是我想要的..
如果 api 返回包含六个对象的数组的响应,我想显示骨架加载组件以在屏幕上显示六次。
我怎样才能做到这一点。
解决方案
拥有骨架的想法是让用户预览获取数据时 UI 的外观,以便提供良好的用户体验。
但是 UI 怎么知道我们需要渲染 6 个骨架。此信息必须来自 API。但是,当您执行类似response.data.length
确定 size 的操作时,您已经在 UI 中获得了响应。当你已经有回应时,为什么要显示skeleton
?所以恕我直言,我们不应该专注于将骨架长度与您的响应长度相匹配。只需渲染在 UI 中看起来不错的骨架编号。
if (loading) {
return <ListSkeleton listsToRender={8} />; // pass the no you want as a prop
}
列表骨架
const ListSkeleton = ({listsToRender}) => {
return (
<>
{Array(listsToRender)
.fill(1)
.map((card, index) => (
// render your skeleton here
))}
</>
);
};
推荐阅读
- python - 为什么我的代码不能在命令行中运行?
- java - 为什么 hashmap 不是线程安全的?
- jenkins - 詹金斯双周构建
- angular - 如何使用 piwik/matomo + angulartics2 实现内容跟踪
- java - JMockit 返回空对象类
- sql - 如何在 SQL 中选择 3 列并执行 COUNT 进行 INNER JOIN 并将它们显示为 3 列但没有重复信息
- c# - 我们是否必须在 WinForms 应用程序中重复我们的代码?
- c++ - 使用带有多个输入参数的比较函数的 std::find_if()
- ios - 如何为 ios 270 360 480 720 1080 设置视频质量
- bash - 附加到目录中的所有文件名