博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react 自定义 TabBar 组件
阅读量:7106 次
发布时间:2019-06-28

本文共 2771 字,大约阅读时间需要 9 分钟。

1.创建 组件

src/components/TabBar/index.js

/** * TabBar 组件 */import React ,{ PureComponent } from 'react';import classNames from 'classnames';import { Link } from 'react-router-dom';import {menuData} from '../../common/menu';import 'antd-mobile/lib/tab-bar/style/index.css';import 'antd-mobile/lib/badge/style/index.css';import Styles from './index.less';class WxTabBar extends PureComponent {  state = {    selectedTab: 'home',    hidden: false  }  changeTab = (tab) => {    this.setState({      selectedTab: tab    })  }  // 监听 props 的变化  componentWillReceiveProps(nextProps){    let pathName = nextProps.location.pathname;    if(pathName === '/home' || pathName === '/classify' || pathName === '/shopcar' || pathName === '/me'){      this.setState({        hidden:false,        selectedTab:pathName.substring(1)      });    }else{      this.setState({        hidden:true      });    }  }  render(){    return (      
{ menuData.map(item => (
{ this.state.selectedTab === item.key?
:
} {/* 1 */}

{item.name}

)) }
) }}export default WxTabBar;

样式

index.less

.container{  position: fixed;  left: 0px;  bottom: 0px;  width: 100%;  background-color: #fff;  box-sizing: border-box;}

菜单

src/common/menu.js

/** * 菜单栏 数据 */// 主页import home1 from '../assets/home1.png'import home2 from '../assets/home2.png'// 分类import sort1 from '../assets/sort1.png'import sort2 from '../assets/sort2.png'// 购物车import shopcar1 from '../assets/shopcar1.png'import shopcar2 from '../assets/shopcar2.png'// 我的import me1 from '../assets/me1.png'import me2 from '../assets/me2.png'/**  * tabbar菜单 */const menuData = [  {    name:'主页',    key:'home',    path:'/home',    icon: home1,    selectedIcon:home2,    unselectedTintColor:"#949494",    tintColor:"#33A3F4",  },  {    name:'分类',    key:'classify',    path:'/classify',    icon: sort1,    selectedIcon:sort2,    unselectedTintColor:"#949494",    tintColor:"#33A3F4",  },  {    name:'购物车',    key:'shopcar',    path:'/shopcar',    icon: shopcar1,    selectedIcon:shopcar2,    unselectedTintColor:"#949494",    tintColor:"#33A3F4",  },  {    name:'我的',    key:'me',    path:'/me',    icon: me1,    selectedIcon:me2,    unselectedTintColor:"#949494",    tintColor:"#33A3F4",  },]export {  menuData}

2.页面调用

3.效果图

转载于:https://www.cnblogs.com/crazycode2/p/9282294.html

你可能感兴趣的文章
[20150527]bbed与数据块检查和2.txt
查看>>
打造平安城市,用心维护安全
查看>>
[20170421]impdp SKIP_CONSTRAINT_ERRORS
查看>>
PostgreSQL on ECS SLA 流复制备库+秒级快照+PITR+自动清理
查看>>
Swift游戏实战-跑酷熊猫 08 产生源源不断的移动平台
查看>>
Web---Cookie技术(显示用户上次登录的时间、显示用户最近浏览的若干个图片(按比例缩放))...
查看>>
【6】JAVA---地址App小软件(QueryPanel.class)(表现层)
查看>>
玩转spring boot——ajax跨域
查看>>
使用Python做科学计算初探(转)
查看>>
线程状态及属性
查看>>
[20171124]手工使用种子库建库.txt
查看>>
4.2、Android Studio压缩你的代码和资源
查看>>
Knockout应用开发指南 第十章:更多信息(完结篇)
查看>>
apache禁止执行php文件
查看>>
模块打包工具 webpack
查看>>
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新)
查看>>
现代IM系统中消息推送和存储架构的实现
查看>>
Linux下时间范围判断的程序流程及其C代码实现
查看>>
关闭mongodb
查看>>
Onvif开发之客户端鉴权获取参数篇
查看>>