import React, {FC, Fragment} from "react"; import {TabBar, FloatingBubble, Toast} from 'antd-mobile' import WidthUseNavigate from './../WidthUseNavigate/index' import { AppOutline, CalendarOutline, UnorderedListOutline, UserOutline, AddOutline, } from 'antd-mobile-icons' import "./index.css" const tabs = [ { key: '/home/treeTask', title: '主子任务', icon: , // badge: '1', }, { key: '/home/listTask', title: '列表任务', icon: , // badge: '2', }, { key: '/home/calTask', title: '日历任务', icon: , // badge: '3', }, { key: '/home/me', title: '我的', icon: , // badge: '4', }, ] class BottomInner extends React.Component { state = { // 默认选中的TabBar菜单项 selectedTab: this.props.useLocation } // 组件接收到新的props(此处,实际上是路由信息)就会触发该钩子函数 componentDidUpdate(prevProps) { // prevProps 上一次的props,此处也就是上一次的路由信息 // this.props 当前最新的props,此处也就是最新的路由信息 // 注意:在该钩子函数中更新状态时,一定要在 条件判断 中进行,否则会造成递归更新的问题 if (prevProps.useLocation !== this.props.useLocation) { // 此时,就说明路由发生切换了 this.setState({ selectedTab: this.props.useLocation }) } } setRouteActive = (value) => { this.props.to(value) this.setState({ selectedTab: value }) } onClick = () => { // Toast.show('你点击了气泡') this.props.to("/detail/addTask") } render() { return this.setRouteActive(value)}> {tabs.map(item => ( ))} } } // 使用高阶组件包裹当前类组件 const Bottom = WidthUseNavigate(BottomInner); export default Bottom