react 底部bar 设置

原文地址: https://dsx2016.com/?p=462

➢ react 底部tab

➢ 思路

定义三个页面组件,分别是home,shop,mine

定义一个公共组件bottomBar,然后放在三个组件里.

父组件传递给子组件状态值,来决定当前tab的状态

➢ 底部bar组件

底部bar组件拿到父组件的状态值stateNum

如果为0就是home页面,1shop页面,2mine页面

根据状态值决定图标的样式变化和跳转的路由

组件内设置图标资源路径,require图片或者https静态图片等

图片分为激活和未激活两种,样式也是

 this.state = {
         imgData: {
             home: {
                 default: `https://file.smallzhiyun.com/flash_icon.png`,
                 active: `https://file.smallzhiyun.com/300.png`
             },
             shop: {
                 default: `https://file.smallzhiyun.com/flash_icon.png`,
                 active: `https://file.smallzhiyun.com/300.png`
             },
             mine: {
                 default: `https://file.smallzhiyun.com/flash_icon.png`,
                 active: `https://file.smallzhiyun.com/300.png`
             }
                }
        };

➢ 图标状态:

<img
    src={
        this.props.stateNum === 0
        ? this.state.imgData.home.default
        : this.state.imgData.home.active
    }
    alt="img"
/>

➢ 样式状态:

定义默认样式和active样式

 .text {
            margin-top: 0.1rem;
            color: #fff;
       }
 .activeText {
                color: red;
            }

根据父组件传值决定样式的切换

 <div
     className={[
     "text",
     this.props.stateNum === 0 ? "activeText" : null
     ].join(" ")}
     >
     首页
 </div>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值