javascript - 如何使用 Chakra-UI 将 API 信息排序到网格中
问题描述
我正在尝试使用 Chakra-UI 将从 API 接收到的数据排序到网格中,但它根本不起作用,我是 Chakra-UI 的新手,所以这对大多数人来说可能看起来超级简单,但我无法弄清楚。如何将这些排序到具有 4 列或更多列的网格中?而不是坚持 1 并顺着页面向下流动?
我尝试了几种不同的方法,但没有一个对我有用,这就是我目前所做的这一次我想我会问,我在下面留下了我的代码以显示我目前拥有的内容和屏幕截图以显示什么正在发生。
import axios from "axios";
import { chakra, Box, Image, Flex, Icon, useColorModeValue, HStack, VStack, Grid, Wrap, WrapItem, Container, Heading, Text, SimpleGrid } from "@chakra-ui/react";
import { MdHeadset, MdEmail, MdLocationOn } from "react-icons/md";
import { BsFillBriefcaseFill } from "react-icons/bs";
const Stores = ({stores}) => { if(!stores){ return <div>Loading...</div> }
console.log(stores);
return (
<>
{stores.map((store) => (
<SimpleGrid columns={4} spacing={10} pl={6}>
<Box height="400px">
<Text>{store.name}</Text>
<Image src={store.imageUrl} />
<Heading>{store.vBucks}</Heading>
</Box>
</SimpleGrid>
))}
</>
)
}
Stores.getInitialProps = async (ctx) => {
try {
const res = await axios.get("https://api.fortnitetracker.com/v1/store", {
headers: {
'TRN-Api-Key' : 'XXX',
'Access-Control-Allow-Origin' : true,
}
});
const stores = res.data;
console.log(stores)
return { stores };
} catch (error) {
return { error };
}
};
export default Stores;
解决方案
看起来您正在组件stores
内部进行映射VStack
,这导致stores
垂直显示。如果您将SimpleGrid
组件移到map
函数之外,它应该会给您想要的结果。
推荐阅读
- php - Laravel:如何使用 withError() 渲染视图?
- c# - WindowsXamlHost 在应用程序启动时不显示内容
- excel - 根据日期范围在多列中查找和附加日期
- c++ - 在 vtkGlyph3D 中为单个三角形着色
- mysql - Pandas sqlalchemy 查询返回 bool
- javascript - 谷歌图片搜索结果中的 URL 格式是什么?以及如何用javascript保存图像?
- c - 指向地址 0 的指针总是无效吗?
- c# - WPF WebView2 和 SimpleInjector - 无法转换为 Microsoft.Web.WebView2.Core.Raw.ICoreWebView2Environment
- sitecore - Sitecore 发布服务状态不工作
- python - 在 Keras 中沿批量维度执行操作并连接到矩阵