在react中使用组件的标签页写订单管理页面

在制作商城类的项目中,成功购物后,会生成订单,我们跳转到订单页面后就会需要使用这个标签页的组件。

首先呢我需要一个来渲染标签标题的一个数组。但是可以更便捷的方法就是直接将数组写入tabs标签内就进行遍历渲染。

javascript 复制代码
// 使用styleCss对象中的style_name样式来设置外层div的样式
<div className={styleCss.style_name}>
    // 定义一个类名为demo-tabs的div,用于包裹Tabs组件
    <div className='demo-tabs'>
        // 创建一个Tabs组件,并设置当前激活的标签为'c'(这可能是一个错误或特定逻辑,因为后面没有直接对应id为'c'的标签)
        <Tabs active='c'>
            // 使用map函数遍历一个数组,该数组包含了各个标签的配置信息
            {[{
                title: '全部', // 标签标题
                id: ''         // 标签id(此处为空,可能用于特殊逻辑处理)
            },
            {
                title: '待付款',
                id: 1
            },
            {
                title: '已付款',
                id: 2
            },
            {
                title: '已发货',
                id: 3
            },
            {
                title: '已收货',
                id: 4
            }].map((item, index) => (
                // 对于数组中的每个元素,创建一个Tabs.TabPane组件
                <Tabs.TabPane 
                    // 使用item对象作为name属性(这里可能有误,通常应该使用item.id或其他唯一标识符)
                    name={item} 
                    // 使用item.id作为key,确保每个TabPane组件都有唯一的key
                    key={item.id} 
                    // 当标签被点击时,调用tabClick函数并传入当前item对象
                    onChange={() => tabClick(item)} 
                    // 设置标签的标题
                    title={`${item.title}`}
                >
                    // 遍历bigData数组,为每个数据项创建一个div块
                    {bigData.map(item => (
                        <div key={item.id} className={styleCss.block}>
                            <div className={styleCss.top}>
                                <p>订单编号:{item.order}</p> // 显示订单编号
                            </div>
                            <div className={styleCss.center}>
                                <img 
                                    src={'http://jingxun.kuxia.top' + item.commodity[0].image} 
                                    alt="" // 显示商品图片
                                />
                                <div className={styleCss.price}>
                                    <p>{item.commodity[0].title}</p> // 显示商品标题
                                    <p>x{item.commodity[0].num}</p> // 显示购买数量
                                </div>
                                <div className={styleCss.fu}>
                                    // 根据item.state的值判断订单状态,并显示相应的文本
                                    <span>{item.state == 1 ? '待付款' : item.state == 2 ? '已付款' : item.state == 3 ? '已发货' : '已收货'}</span>
                                </div>
                            </div>
                            <div className={styleCss.bottom}>
                                <p>应付:¥{item.commodity[0].price}</p> // 显示应付金额
                                <div>
                                    <p className={styleCss.cancel}>取消订单</p> // 显示取消订单按钮
                                    <p className={styleCss.pay}>付款</p> // 显示付款按钮
                                </div>
                            </div>
                        </div>
                    ))}
                </Tabs.TabPane>
            ))}
        </Tabs>
    </div>
</div>

点击标签栏如何确认显示不同的数据:

标签配置数组:首先,通过定义一个数组,其中每个元素都是一个对象,包含title和id属性,来定义不同的标签。

遍历标签配置数组:使用map函数遍历这个数组,为每个元素创建一个Tabs.TabPane组件。Tabs.TabPane组件的name属性、key属性和title属性分别由当前遍历的元素决定。

标签点击事件:为每个Tabs.TabPane组件的onChange属性绑定一个函数,该函数在标签被点击时调用,并传入当前遍历到的标签配置对象。

Tabs组件的工作机制:Tabs组件内部会根据active属性或用户点击事件来显示或隐藏不同的Tabs.TabPane组件。这样,用户就可以通过点击不同的标签来查看不同状态下的订单信息。

相关推荐
咖啡教室3 分钟前
前端开发中JavaScript、HTML、CSS常见避坑问题
前端·javascript·css
LaoZhangAI2 小时前
Claude MCP模型上下文协议详解:AI与外部世界交互的革命性突破【2025最新指南】
前端
LaoZhangAI2 小时前
2025最全Cursor MCP实用指南:15个高效工具彻底提升AI编程体验【实战攻略】
前端
Kagerou3 小时前
vue3基础知识(结合TypeScript)
前端
市民中心的蟋蟀3 小时前
第五章 使用Context和订阅来共享组件状态
前端·javascript·react.js
逆袭的小黄鸭3 小时前
JavaScript 闭包:强大特性背后的概念、应用与内存考量
前端·javascript·面试
carterwu3 小时前
各个大厂是怎么实现组件库和相应扩展的?基础组件、区块、页面
前端
Face3 小时前
promise 规范应用
前端
Mintopia3 小时前
Node.js 中 fs.readFile API 的使用详解
前端·javascript·node.js
Face3 小时前
事件循环
前端·javascript