在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组件。这样,用户就可以通过点击不同的标签来查看不同状态下的订单信息。

相关推荐
_龙衣1 分钟前
将 swagger 接口导入 apifox 查看及调试
前端·javascript·css·vue.js·css3
进取星辰1 小时前
25、Tailwind:魔法速记术——React 19 样式新思路
前端·react.js·前端框架
struggle20251 小时前
continue通过我们的开源 IDE 扩展和模型、规则、提示、文档和其他构建块中心,创建、共享和使用自定义 AI 代码助手
javascript·ide·python·typescript·开源
x-cmd2 小时前
[250512] Node.js 24 发布:ClangCL 构建,升级 V8 引擎、集成 npm 11
前端·javascript·windows·npm·node.js
夏之小星星2 小时前
el-tree结合checkbox实现数据回显
前端·javascript·vue.js
crazyme_62 小时前
前端自学入门:HTML 基础详解与学习路线指引
前端·学习·html
撸猫7912 小时前
HttpSession 的运行原理
前端·后端·cookie·httpsession
亦世凡华、3 小时前
Rollup入门与进阶:为现代Web应用构建超小的打包文件
前端·经验分享·rollup·配置项目·前端分享
Bl_a_ck3 小时前
【React】Craco 简介
开发语言·前端·react.js·typescript·前端框架
为美好的生活献上中指3 小时前
java每日精进 5.11【WebSocket】
java·javascript·css·网络·sql·websocket·网络协议