menu导航栏

该代码段展示了如何在React应用中创建一个动态菜单,使用useState和useEffect钩子来管理当前选中的页面路径,并通过onSelect处理菜单项的选择,同时利用history对象进行页面跳转。菜单基于items数组构建,支持多级结构。
摘要由CSDN通过智能技术生成

const items = [

  getItem('detail', '/', <MailOutlined />),

  getItem('首页', '', <SettingOutlined />, [getItem('表单', '/home')]),

];

export default function BasicLayout(props) {

  const { history } = props;

  const { pathname } = props.location;

  const [taburl, setTaburl] = useState('/');

  // 必写  保存刷新高亮不变

  useEffect(() => {

    setTaburl(pathname);

  }, [pathname]);

  // 选中切换页面

  const onSelect = (opt) => {

    console.log(opt);

    history.push(opt.key);

    setTaburl(opt.selectedKeys);

  };

  return (

    <div className="big">

      <div className="left">

        <Menu

          mode="inline"

          theme="drak"

          //初始选中的菜单项 key 数组

          defaultSelectedKeys={taburl}

        //初始展开的 Menu 菜单项 key 数组 

          defaultOpenKeys={['/']}

          //当前打开的页面

          selectedKeys={taburl}

        //选中页面的事件

          onSelect={onSelect}

          items={items}

        />

      </div>

        //展示选中的页面

      <div className="right">{props.children}</div>

    </div>

  );

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值