gpt4 book ai didi

javascript - Ant Design(antd)的分页和卡片组件?

转载 作者:行者123 更新时间:2023-11-30 08:20:52 24 4
gpt4 key购买 nike

是否可以结合 antd 中的分页组件使用 Card 组件获得类似于 Pinterest 的分页页面?

来自 https://ant.design/components/pagination/ 的基本分页代码:

import { Pagination } from 'antd';

ReactDOM.render(<Pagination defaultCurrent={1} total={50} />, mountNode);

来自 https://ant.design/components/card/ 的基本卡代码:

import { Card } from 'antd';

ReactDOM.render(
<Card
title="Card title"
extra={<a href="#">More</a>}
style={{ width: 300 }}
>
<p>Card content</p>
<p>Card content</p>
<p>Card content</p>
</Card>,
mountNode
);

如何将这些组合起来以循环显示类似于图像中示例的许多卡片?例如,一些页面有 9 张卡片。

pagination example

最佳答案

这可以通过设置最小值和最大值并相应地显示结果来完成。

const numEachPage = 4   // Use a constant here to keep track of number of cards per page

constructor(props) {
super(props);
this.state = {
minValue: 0,
maxValue: 1
};
}

然后使用 Array.slice() 根据这些值显示数据如下所示:

render() {
let data = [
{ title: "Card title1", value: "Card content1" },
{ title: "Card title2", value: "Card content2" },
{ title: "Card title3", value: "Card content3" },
{ title: "Card title4", value: "Card content4" },
{ title: "Card title5", value: "Card content5" }
];
return (
<div>
{data &&
data.length > 0 &&
data.slice(this.state.minValue, this.state.maxValue).map(val => (
<Card
title={val.title}
extra={<a href="#">More</a>}
style={{ width: 300 }}
>
<p>{val.value}</p>
</Card>
))}
<Pagination
defaultCurrent={1}
defaultPageSize={numEachPage} //default size of page
onChange={this.handleChange}
total={3} //total number of card data available
/>
</div>
);
}

然后您可以在handleChange 方法中编写您的逻辑。

handleChange = value => {
this.setState({
minValue: (value - 1) * numEachPage,
maxValue: value * numEachPage
});
};

我创建了一个 working demo .

关于javascript - Ant Design(antd)的分页和卡片组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53843548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com