ant-mobile TabBar 组件添加路由

感觉 ant-mobile 和 vant 相比要很不方便,很多功能需要我们自己去实现,团队的重心应该都在 ant-design 上,比如 TabBar 并没有设置路由功能,本文阐述了如何在一个使用了 react-router 的 react 项目中合理的使用 antd-mobile tabbar 功能。

为了使组件结构更加清晰,首先要在 TabBar 组件外包一层父组件来读取路由信息,我们可以通过 this.props.location.pathname 拿到当前的 pathname,我项目中的 pathname 的结构为 /index/mine,取到 mine 即为当前页面:

let currPage = this.props.location.pathname.split('/')[2];

 

将 currPage 传递给子组件:

<Tabbar {...this.props} currPage={currPage} />

在 Tabbar 组件中使用 shouldComponentUpdate 生命周期钩子来判断是否需要更改 selectedTab,如果 props.currPage 与 state.selectedTab 一致即更改当前 tab,如果一致则忽略。

shouldComponentUpdate(props, state) {
    // 根据外部传来的参数来确定打开的页面
    if (props.currPage !== state.selectedTab) {
        this.setState({
            selectedTab: props.currPage
        })
    }
    return true;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值