react antd 下拉菜单的两种实现

方法一:Dropdown 中使用属性menu 

				   
<Dropdown className={index.menu_logo}  menu={{ items, onClick: handleMenuClick,}}>
		<a className={index.menu_logo}>
		<img className="ant-dropdown-link" onClick={e => e.preventDefault()} src={this.state.logourl} alt="头像" />
		<span  className={index.menu_loginname}>{this.state.loginname}</span>
        </a>
</Dropdown>

如何定义items:

		const items: MenuProps['items'] = [
		    {
		      label: <Space><SettingOutlined />修改密码</Space>,
		      key: '1',
		    },
		    {
		      label: <Space><PoweroffOutlined />退出登录</Space>,
		      key: '2',
		    },
		];

关联事件:

		const handleMenuClick= (e) => {
             if(e.key === '1') {
                 this.modifyPass()
             }
			 if(e.key==='2'){
				 this.loginOut()
			 }
        };

最终实现效果:

方法二:Dropdown 中使用属性overlay

<Dropdown className={index.menu_logo} overlay={menu} >
		<a className={index.menu_logo}>
		 <img className="ant-dropdown-link" onClick={e => e.preventDefault()} src={this.state.logourl} alt="头像" />
		<span  className={index.menu_loginname}>{this.state.loginname}</span>
</Dropdown>

 如何定义overlay中的menu:

		let menu = (
		  <Menu>
		        <Menu.Item key="2" onClick={()=>this.modifyPass()}>
				    <Space><SettingOutlined />修改密码</Space>
				</Menu.Item>
			    <Divider dashed={false} />
		        <Menu.Item key="3" onClick={()=>this.loginOut()}>
		    	     <Space><PoweroffOutlined />退出登录</Space>
			    </Menu.Item>
		  </Menu>
		);

实现效果:

两个方法都是实现,但是方法二实现中在edage浏览器中会这样的警告:

 

 随着antd版本的不同可能还会在变化,overlay这个属性可能在比价低的版本中可以用到,我们看antd的官网,关于Dropdown中相关的api的介绍中已经没有了overlay的相关介绍

所以建议使用方法一

希望对你有所帮助

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值