博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用antd UI 制作菜单
阅读量:5057 次
发布时间:2019-06-12

本文共 4421 字,大约阅读时间需要 14 分钟。

antd 主页地址:https://ant.design/docs/react/introduce

在使用过程中,不能照搬antd的组件代码,因为有些并不合适。首先,菜单并没有做跳转功能,仅仅是菜单,需要在它的基础方法中添加我们的业务代码。

/*菜单组件,所有的方法都要bind this*/import React,{Component} from 'react';import {render} from 'react-dom';import {Link,browserHistory} from 'react-router';import Menu from 'antd/lib/menu';import Icon from 'antd/lib/icon';const SubMenu = Menu.SubMenu;const MenuItemGroup = Menu.ItemGroup;import {user_search_path,        application_search_path,navigation_search,advertising_search} from 'config';export default class Sidebar extends Component{    constructor(props){        super(props);        this.state = {            current: '1',            openKeys: []        }    }    handleClick(e) {       /*这里要做判断,判断是点击哪个菜单,就跳转到相应的菜单内容,使用router进行跳转*/        if(e.key == "1"){            browserHistory.push(user_search_path);        }else if(e.key == '2'){            browserHistory.push(application_search_path);        }else if(e.key == '3'){            browserHistory.push(navigation_search);        }else if(e.key == '4'){            browserHistory.push(advertising_search);        }        this.setState({            current: e.key,            openKeys: e.keyPath.slice(1)        });    }    onToggle(info) {        console.log('onToggle', info);        this.setState({            openKeys: info.open ? info.keyPath : info.keyPath.slice(1)        });    }    getKeyPath(key) {        const map = {            sub1: ['sub1'],            sub2: ['sub2'],            sub3: ['sub2', 'sub3'],            sub4: ['sub4'],        };        return map[key] || [];    }    render(){        return(            
用户服务}>
设置权限
配置服务}>
app版本查询
导航配置查询
广告配置查询
app changeLog
短信服务}>
); }}

第二步,通过页面加载组件Parent.js,固定菜单与菜单内容的位置

import React,{Component} from 'react';import {render} from 'react-dom';import Icon from 'antd/lib/icon';import jiChu from '../../../build/images/jichu.png';import HeaderRight from '../login/HeaderRight.js';import SearchUser from '../login/SearchUser.js';import Sidebar from '../sidebar/Sidebar.js';import style from '../../../build/css/login.css';export default class Parent extends Component{    constructor(props){        super(props);    }    render(){        const headerUserPanel = (
); const search = (
); const sidebars = (
); /*菜单组件*/ return(
{sidebars}
收缩菜单
{headerUserPanel}
{this.props.children} /*菜单组件对应内容*/
); }}

最后一步,在路由中通过path将页面与路径关联,这样我们在菜单组件中的跳转就是通过这一步控制

import React from 'react';import {render} from 'react-dom';import { Router , Redirect, Route , IndexRoute , browserHistory } from 'react-router';import { Provider } from 'react-redux'const store = configureStore();render((    
), document.getElementById('root'));

完毕!

 

转载于:https://www.cnblogs.com/baiyygynui/p/5948060.html

你可能感兴趣的文章
ArcGIS Engine许可初始化-白旭阳(ESRI )
查看>>
Java多线程系列--“JUC锁”08之 共享锁和ReentrantReadWriteLock
查看>>
数据库事务的四大特性以及事务的隔离级别
查看>>
多线程、异步调用异常场景测试
查看>>
java 17 -2 set集合以及hashCode()的源码
查看>>
HDU 1150 Machine Schedule (二分图最小点覆盖)
查看>>
Vue:axios中POST请求传参问题
查看>>
计算机 和python 基础
查看>>
H5小内容(四)
查看>>
HDU 5458 Stability (树链剖分+并查集+set)
查看>>
自定义URL Protocol 协议
查看>>
第五章 二叉树(e5)重构
查看>>
基于visual Studio2013解决算法导论之054图的邻接矩阵表示
查看>>
汇编实验三
查看>>
位运算实例
查看>>
java中关于String对象的解析
查看>>
Linux(二) 常用命令
查看>>
责任链模式
查看>>
一大盒子平均分为三个盒子
查看>>
VC++2012编程演练数据结构《34》树形选择排序
查看>>