UNPKG

yylib-quick-mobile

Version:

yylib-quick-mobile

67 lines (62 loc) 2.49 kB
/** * Created By whh 2017/12/26 * */ import React, {Component} from 'react'; import {Tabs} from 'antd-mobile'; import classnames from 'classnames'; import './YYTabs.less'; import {isFunction} from '../../utils/FunctionUtil'; class YYTabs extends React.Component { state = { tabBarUnderlineLeft: (this.props.initialPage?(5+this.props.initialPage*20):5)+'%' } onChange = (tab, index) => { this.setState({ tabBarUnderlineLeft:(5+index*20)+"%" }) if (isFunction(this.props.onChange)) this.props.onChange(tab, index) } onTabClick = (tab, index) => { if (isFunction(this.props.onTabClick)) this.props.onTabClick(tab, index) } render() { let {type, tabs, tabBarPosition, initialPage, page, swipeable, tabDirection, tabBarInactiveTextColor,tabBarActiveTextColor,tabBarUnderlineStyle, children, className, ...restProps} = this.props; let wrapClz = classnames('yy-tabs-'+(type==='left'?'left':'default'), className); return ( <div className={wrapClz}> <Tabs {...restProps} tabs={tabs} tabBarPosition={tabBarPosition} initialPage={initialPage} page={page} swipeable={swipeable} onChange={this.onChange} onTabClick={this.onTabClick} tabDirection={tabDirection} tabBarInactiveTextColor={tabBarInactiveTextColor} tabBarActiveTextColor={tabBarActiveTextColor} tabBarUnderlineStyle={(!tabBarUnderlineStyle)&&(type==='left')?{"width": "10%", "left": this.state.tabBarUnderlineLeft}:tabBarUnderlineStyle} > {children} </Tabs> </div> ) }; } ; YYTabs.defaultProps = { type: 'default', tabs: [],//tab数据 tabBarPosition: 'top',//TabBar位置 //initialPage: null,//初始化Tab, index or key //page: null,//当前Tab, index or key swipeable: true,//是否可以滑动内容切换 onChange: null,//tab变化时触发 onTabClick: null,//tab 被点击的回调 tabDirection: 'horizontal',//Tab方向 (web only) tabBarInactiveTextColor:'#414655', tabBarActiveTextColor:'#0091FA', tabBarUnderlineStyle:null } export default YYTabs;