react 学习—动态菜单

本文介绍了如何在React项目中结合react-router-dom创建动态菜单。首先,文章讲解了引入react-router-dom库的步骤,接着阐述了如何创建一个配置文件(menuConfig)来存储菜单数据。然后,详细说明了导航组件(NavLeft)如何读取并显示这些菜单。最后,展示了实施后的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 打开项目引入react-router-dom

yarn add react-router-dom

2 创建配置文件(src/config/menuConfig)

//动态菜单
const menuList = [
    {
        'title': "首页",
        'key': '/home'
    }, {
        'title': "机器人设置",
        'key': '/robot',
        'children': [
            {
                'title': "开启",
                'key': '/robot/start',
            }
        ]
    }
];

export default menuList;

3 导航组件(src/components/NavLeft/index.js)调用菜单

import React, {Component} from 'react';
import {Menu} from "antd";
import menuConfig from '../../config/menuConfig';

const SubMenu = Menu.SubMenu;
const MenuItem = Menu.Item;

export default class Index extends Component {

    componentWillMount() {
        const menuList = this.renderMenu(menuConfig);
        console.log(menuList);
        this.setState({
            menuList
        })
    }

    //使用递归
    renderMenu = (data) => {
        return data.map((item) => {
            if (item.children) {
                return (
                    <SubMenu key={item.key} title={item.title}>
                        {this.renderMenu(item.children)}
                    </SubMenu>
                )
            } else {
                return (
                    <MenuItem key={item.key} title={item.title}>
                        {item.title}
                    </MenuItem>
                )
            }
        })
    };

    render() {
        return (
            <Menu style={{width: 150}}
                  theme='dark'>
                {this.state.menuList}
            </Menu>
        );
    }
}

4 显示效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值