|
@@ -13,21 +13,18 @@ class App extends Component {
|
|
|
super(props)
|
|
super(props)
|
|
|
this.state = {
|
|
this.state = {
|
|
|
selectedTab: 'home',
|
|
selectedTab: 'home',
|
|
|
- tabHidden: false,
|
|
|
|
|
- page: 'detail'
|
|
|
|
|
|
|
+ tabHidden: false
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
componentWillMount() {
|
|
componentWillMount() {
|
|
|
- console.log('this.props',this.props)
|
|
|
|
|
let {location} = this.props,
|
|
let {location} = this.props,
|
|
|
pathname = location.pathname
|
|
pathname = location.pathname
|
|
|
|
|
|
|
|
// 根据首次的 pathname 显示 icon 选中
|
|
// 根据首次的 pathname 显示 icon 选中
|
|
|
- console.log(pathname)
|
|
|
|
|
if (location && pathname) {
|
|
if (location && pathname) {
|
|
|
this.setState({
|
|
this.setState({
|
|
|
- selectedTab: pathname.substr(1) === '' ? 'home' : pathname.substr(1)
|
|
|
|
|
|
|
+ selectedTab: pathname.split('/')[1] === '' ? 'home' : pathname.split('/')[1]
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -47,32 +44,23 @@ class App extends Component {
|
|
|
// 根据非首次的 pathname 显示 icon 选中
|
|
// 根据非首次的 pathname 显示 icon 选中
|
|
|
if (location && pathname) {
|
|
if (location && pathname) {
|
|
|
this.setState({
|
|
this.setState({
|
|
|
- selectedTab: pathname.substr(1) === '' ? 'home' : pathname.substr(1)
|
|
|
|
|
|
|
+ selectedTab: pathname.split('/')[1] === '' ? 'home' : pathname.split('/')[1]
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- chooseClassNames = (tabbar) => (
|
|
|
|
|
- classnames(
|
|
|
|
|
- {'tabbar-content': true},
|
|
|
|
|
- {'tabbar-inactive': this.state.selectedTab !== tabbar},
|
|
|
|
|
- {'tabbar-active': this.state.selectedTab === tabbar}
|
|
|
|
|
- )
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- isActiveFunc = (match, location) => {
|
|
|
|
|
- console.log(match,'contact')
|
|
|
|
|
- return match
|
|
|
|
|
|
|
+ isActiveFunc = (navKind) => (match, location) => {
|
|
|
|
|
+ return navKind === location.pathname.split('/')[1]
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
render() {
|
|
|
let {selectedTab, tabHidden} = this.state
|
|
let {selectedTab, tabHidden} = this.state
|
|
|
return (
|
|
return (
|
|
|
<div>
|
|
<div>
|
|
|
- <div className="tabbar1">
|
|
|
|
|
|
|
+ <div className={classnames('tabbar', {'tarbar-hidden': tabHidden})}>
|
|
|
<Row>
|
|
<Row>
|
|
|
- <Col span={8}>
|
|
|
|
|
- <NavLink exact activeClassName="active" to="/">
|
|
|
|
|
|
|
+ <Col span={8} className='tabbar-content'>
|
|
|
|
|
+ <NavLink exact isActive={this.isActiveFunc('home')} activeClassName="active" to="/">
|
|
|
{
|
|
{
|
|
|
selectedTab === 'home' ?
|
|
selectedTab === 'home' ?
|
|
|
<HomeSelectedIcon/>
|
|
<HomeSelectedIcon/>
|
|
@@ -84,8 +72,8 @@ class App extends Component {
|
|
|
</div>
|
|
</div>
|
|
|
</NavLink>
|
|
</NavLink>
|
|
|
</Col>
|
|
</Col>
|
|
|
- <Col span={8}>
|
|
|
|
|
- <NavLink activeClassName="active" to={{pathname: '/cart'}}>
|
|
|
|
|
|
|
+ <Col span={8} className='tabbar-content'>
|
|
|
|
|
+ <NavLink isActive={this.isActiveFunc('cart')} activeClassName="active" to="/cart">
|
|
|
{
|
|
{
|
|
|
selectedTab === 'cart' ?
|
|
selectedTab === 'cart' ?
|
|
|
<CartSelectedIcon/>
|
|
<CartSelectedIcon/>
|
|
@@ -97,8 +85,8 @@ class App extends Component {
|
|
|
</div>
|
|
</div>
|
|
|
</NavLink>
|
|
</NavLink>
|
|
|
</Col>
|
|
</Col>
|
|
|
- <Col span={8}>
|
|
|
|
|
- <NavLink isActive={this.isActiveFunc} activeClassName="active" to="/my">
|
|
|
|
|
|
|
+ <Col span={8} className='tabbar-content'>
|
|
|
|
|
+ <NavLink isActive={this.isActiveFunc('my')} activeClassName="active" to="/my">
|
|
|
{
|
|
{
|
|
|
selectedTab === 'my' ?
|
|
selectedTab === 'my' ?
|
|
|
<MySelectedIcon/>
|
|
<MySelectedIcon/>
|
|
@@ -111,50 +99,6 @@ class App extends Component {
|
|
|
</NavLink>
|
|
</NavLink>
|
|
|
</Col>
|
|
</Col>
|
|
|
</Row>
|
|
</Row>
|
|
|
-
|
|
|
|
|
- </div>
|
|
|
|
|
- <div className={classnames('tabbar', {'tarbar-hidden': tabHidden})}>
|
|
|
|
|
- <Row>
|
|
|
|
|
- <NavLink exact to="/">
|
|
|
|
|
- <Col className={this.chooseClassNames('home')} span={8}>
|
|
|
|
|
- {
|
|
|
|
|
- selectedTab === 'home' ?
|
|
|
|
|
- <HomeSelectedIcon/>
|
|
|
|
|
- :
|
|
|
|
|
- <HomeUnselectedIcon/>
|
|
|
|
|
- }
|
|
|
|
|
- <div className='tabbar-title'>
|
|
|
|
|
- 主页
|
|
|
|
|
- </div>
|
|
|
|
|
- </Col>
|
|
|
|
|
- </NavLink>
|
|
|
|
|
- <NavLink to="/cart">
|
|
|
|
|
- <Col className={this.chooseClassNames('cart')} span={8}>
|
|
|
|
|
- {
|
|
|
|
|
- selectedTab === 'cart' ?
|
|
|
|
|
- <CartSelectedIcon/>
|
|
|
|
|
- :
|
|
|
|
|
- <CartUnselectedIcon/>
|
|
|
|
|
- }
|
|
|
|
|
- <div className='tabbar-title'>
|
|
|
|
|
- 购物篮
|
|
|
|
|
- </div>
|
|
|
|
|
- </Col>
|
|
|
|
|
- </NavLink>
|
|
|
|
|
- <NavLink to="/my">
|
|
|
|
|
- <Col className={this.chooseClassNames('my')} span={8}>
|
|
|
|
|
- {
|
|
|
|
|
- selectedTab === 'my' ?
|
|
|
|
|
- <MySelectedIcon/>
|
|
|
|
|
- :
|
|
|
|
|
- <MyUnselectedIcon/>
|
|
|
|
|
- }
|
|
|
|
|
- <div className='tabbar-title'>
|
|
|
|
|
- 我
|
|
|
|
|
- </div>
|
|
|
|
|
- </Col>
|
|
|
|
|
- </NavLink>
|
|
|
|
|
- </Row>
|
|
|
|
|
</div>
|
|
</div>
|
|
|
<Switch>
|
|
<Switch>
|
|
|
<Route exact path="/" component={Home}/>
|
|
<Route exact path="/" component={Home}/>
|