正在 Bootstrap 卡片中获取 MongoDB 数据
Fetching MongoDB data in Boostrap cards
我正在从 MongoDB 获取一些数据并尝试将其显示在 Bootstrap 5 张卡片中。虽然我的代码工作正常并且数据已正确提取到 Bootstrap 卡片中,但如果我在数据库中有 10 个条目,则 10 张卡片会显示在同一行中。
相反,我想要做的是使用 Bootstrap 网格并每行最多显示三张卡片。我怎样才能在这里做到这一点?
这是显示卡片的页面:
import axios from "axios"
import Navbar from "../../components/Navbar"
import ProductCard from "../../components/ProductCard"
export default function starters({ productList }) {
return (
<div className="container-fluid p-0">
<Navbar></Navbar>
<div className="container text-center">
<h1 className="display-3">Starters</h1>
<div className="container text-center">
<div className="row">
<div className="col-md-4">
{productList.map((Product) => (
<ProductCard key={Product._id} Product={Product}></ProductCard>
))
}
</div>
</div>
</div>
</div>
</div>
)
}
export const getServerSideProps = async () => {
const res = await axios.get("http://localhost:3000/api/products")
return {
props: {
productList: res.data,
},
}
}
这是卡片组件:
export default function Products({Product}) {
return (
<>
<div className="card m-5" style={{width: "18rem;"}}>
<img src={Product.img} className="card-img-top" alt="..."/>
<div className="card-body">
<h5 className="card-title">{Product.title}</h5>
<p className="card-text">{Product.desc}</p>
<p className="card-text">{Product.prices[0]}</p>
<a href="#" className="btn btn-primary">Go somewhere</a>
</div>
</div>
</>
)
}
我认为你必须将此 <div className="col-md-4">
移动到 Products
。
export default function Products({Product}) {
return (
<div className="col-md-4">
<div className="card m-5" style={{width: "18rem;"}}>
<img src={Product.img} className="card-img-top" alt="..."/>
<div className="card-body">
<h5 className="card-title">{Product.title}</h5>
<p className="card-text">{Product.desc}</p>
<p className="card-text">{Product.prices[0]}</p>
<a href="#" className="btn btn-primary">Go somewhere</a>
</div>
</div>
</div>
)
}
我正在从 MongoDB 获取一些数据并尝试将其显示在 Bootstrap 5 张卡片中。虽然我的代码工作正常并且数据已正确提取到 Bootstrap 卡片中,但如果我在数据库中有 10 个条目,则 10 张卡片会显示在同一行中。
相反,我想要做的是使用 Bootstrap 网格并每行最多显示三张卡片。我怎样才能在这里做到这一点?
这是显示卡片的页面:
import axios from "axios"
import Navbar from "../../components/Navbar"
import ProductCard from "../../components/ProductCard"
export default function starters({ productList }) {
return (
<div className="container-fluid p-0">
<Navbar></Navbar>
<div className="container text-center">
<h1 className="display-3">Starters</h1>
<div className="container text-center">
<div className="row">
<div className="col-md-4">
{productList.map((Product) => (
<ProductCard key={Product._id} Product={Product}></ProductCard>
))
}
</div>
</div>
</div>
</div>
</div>
)
}
export const getServerSideProps = async () => {
const res = await axios.get("http://localhost:3000/api/products")
return {
props: {
productList: res.data,
},
}
}
这是卡片组件:
export default function Products({Product}) {
return (
<>
<div className="card m-5" style={{width: "18rem;"}}>
<img src={Product.img} className="card-img-top" alt="..."/>
<div className="card-body">
<h5 className="card-title">{Product.title}</h5>
<p className="card-text">{Product.desc}</p>
<p className="card-text">{Product.prices[0]}</p>
<a href="#" className="btn btn-primary">Go somewhere</a>
</div>
</div>
</>
)
}
我认为你必须将此 <div className="col-md-4">
移动到 Products
。
export default function Products({Product}) {
return (
<div className="col-md-4">
<div className="card m-5" style={{width: "18rem;"}}>
<img src={Product.img} className="card-img-top" alt="..."/>
<div className="card-body">
<h5 className="card-title">{Product.title}</h5>
<p className="card-text">{Product.desc}</p>
<p className="card-text">{Product.prices[0]}</p>
<a href="#" className="btn btn-primary">Go somewhere</a>
</div>
</div>
</div>
)
}