Closed HeLiYu0 closed 6 months ago
根据您提供的代码片段,我注意到您正在加载菜单数据并将其用作导航链接。您提到在设置defaultSettings.ts
中的target:'self'
后,菜单仍然在新标签页中打开。
根据您的描述,我假设您正在使用Ant Design Pro V6和umi V4。在Ant Design Pro V6中,默认情况下,菜单链接是在新标签页中打开的,而不受defaultSettings.ts
中的配置影响。
要在当前标签页中打开菜单链接,您需要进行以下更改:
config.ts
文件。menu
配置中的每个菜单项中添加target:'_self'
属性。示例代码如下:
export default [
{
path: '/',
name: '菜单1',
icon: 'icon1',
target: '_self', // 添加target属性
},
{
path: '/menu2',
name: '菜单2',
icon: 'icon2',
target: '_self', // 添加target属性
},
// 其他菜单项...
];
通过将target
设置为'_self'
,您将告诉浏览器在当前标签页中打开链接。
请注意,这种更改将应用于所有菜单项。如果只想更改特定菜单项的行为,请在相应的菜单项中进行更改。
希望这能帮助解决您的问题!如果您有任何其他疑问,请随时问我。
🧐 问题描述 | Problem description
我在app.tsx中从服务端获取的菜单数据,path为url链接。在defaultSettings.ts文件中配置的target:'self'但是点击菜单跳转仍然是在新标签页打开
💻 示例代码 | Sample code
menu: { // 每当 initialState?.currentUser?.userid 发生修改时重新执行 request params: { // userId: initialState }, request: async (params: void, defaultMenuData: any) => { const menus = await getMenuList().then((res: any) => { return res.data[1].children.map((item: any) => { return { path: '/', name: item.title, icon: React.createElement(allIcons['SettingOutlined']), key: item.id, routes: item.children.map((element: any) => { return { path: 'https://umijs.org/docs/api/runtime-config#layout', // name:element.title, key: element.id, }; }), }; }); }); // initialState.currentUser 中包含了所有用户信息 return menus; }, },
🚑 其他信息 | Other information
antdPro版本:V6,umi版本:4
OS:
Node:
浏览器 | browser: