1. 问题描述
最近,遇到一个问题,左侧菜单全部是 cmdb 域下面的,现在需要增加一个菜单项,点击后需要新开一个页面,并且是另一个域(cidataquality)下面的;并且当前页面的路由地址不希望发生变化
2. 具体做法
- 在 menus 里面增加 onClick 事件,并且使用 window.open 打开指定路由,并且禁止默认点击事件。
let menus = [
{
key: 'compchecks',
type: 'link',
name: 'xxx',
icon: <Plus />,
path: '/cidataquality',
onClick: (e) => {
e.preventDefault()
e.stopPropgation()
window.open('/cidataquality', '_blank')
}
}
]
<Menus items={menus} />
- 但是禁止默认点击事件行为并没有效果,当前页面地址还是会发生改变。此时,还可以使用另外一种思路:页面路由地址已经改变是既定事实,但是可以使用
路由回退解决这一问题。
onClick: (e) => {
window.open('/cidataquality', '_blank')
window.history.go(-1)
}