Closed Jimmylxue closed 7 months ago
值得注意是的百分之二十的问题都可以用重装依赖来解决,所以你可以尝试一下: 删除 'node_modules' 文件夹 -> 删除 'package-lock.json'或 'pnpm-lock.yaml' 文件 -> 运行 'pnpm install' 或 'npm install' 命令
问题描述: 在新版本的antdpro中,当子路由嵌套子路由时,对应的组件无法正常渲染出来,永远渲染的是父级的路由。
解决方案: 这个问题可能与路由配置的嵌套关系有关。可以尝试以下解决方案:
hideChildrenInMenu
属性为false
,表示不隐藏子菜单:{
path: '/manage/letter',
name: '站内信',
hideChildrenInMenu: false,
component: './Manage/Letter',
routes: [
{
path: '/manage/letter/edit',
name: '站内信编辑',
component: './Manage/Letter/edit.tsx',
},
],
},
<Outlet />
组件来渲染子路由:import { Outlet } from 'umi';
function Letter() {
return (
<div>
{/* 父级路由组件内容 */}
<h1>站内信</h1>
{/* 渲染子路由 */}
<Outlet />
</div>
);
}
export default Letter;
<Outlet />
组件来渲染子路由:import { Outlet } from 'umi';
function Edit() {
return (
<div>
{/* 子路由组件内容 */}
<h1>站内信编辑</h1>
{/* 渲染子路由 */}
<Outlet />
</div>
);
}
export default Edit;
通过上述配置,即可实现子路由的正确渲染。
注意:在新版本的antdpro中,子路由的渲染方式可能发生了变化,所以需要根据最新的官方文档进行配置。
🧐 问题描述 | Problem description
新版本的antdpro 在子路由嵌套子路由的情况下,怎么对应的组件无法正常渲染出来呢,永远渲染的是父级的路由。
这个旧版本也不会这样呀,烦请各位大佬有空帮忙看看这个问题~
💻 示例代码 | Sample code
config/route.ts
🚑 其他信息 | Other information
/manage/letter 下展示为: /manage/letter/edit 下展示为:
OS:
Node:
浏览器 | browser: