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

相关推荐
wu8587734573 分钟前
向量数据库不是银弹:从枚举漏检到 ReACT 多轮召回的实践路径
前端·数据库·react.js
meilindehuzi_a4 分钟前
深入理解 JavaScript 执行机制:从编译阶段到调用栈底层实现
开发语言·javascript·ecmascript
古怪今人6 分钟前
[前端]HTML盒模型与尺寸,标准文档流,块级元素、内联元素和行内块,CSS选择器
前端·css
小雨下雨的雨27 分钟前
基于鸿蒙PC Electron框架技术完成的表单验证技术详解
前端·javascript·华为·electron·前端框架·鸿蒙
提子拌饭13328 分钟前
饮料含糖量查询应用 - 鸿蒙PC用Electron框架完整实现
前端·javascript·华为·electron·前端框架·鸿蒙
JustHappy30 分钟前
古法编程秘籍(五):什么是进程和线程?从软件到 CPU 的一次完整旅程
前端·后端·代码规范
爱编程的小金37 分钟前
前端请求库的下一个进化方向:从 Promise 到策略化
前端·alova·前端请求库·请求策略
hsg7738 分钟前
简述:Jensen Huang‘s Footsteps网站全内容分析
前端·javascript·数据库
珑墨1 小时前
前端 AI 开发通用skill
前端
kyriewen1 小时前
一个人+Cursor,7天上线付费小程序:第1天我就想放弃了
前端·微信小程序·cursor