【问题描述】:项目路由由前端路由文件以及后端接口获取到的路由组合而成,接口获取到的路由菜单选中无标记,且会自动折叠。
在app.tsx文件的layout中返回值中增加menuProps属性,增加参数setInitialState,重写菜单选中、打开逻辑。
export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) => {
return {
menuProps: {
openKeys: initialState?.openKeys,
onSelect: ({ item, key, keyPath, domEvent }) => {
if (!item) return;
setInitialState({ ...initialState, openKeys: keyPath });
},
onOpenChange: (openKeys) => {
setInitialState({ ...initialState, openKeys });
},
},
}
}
如果接口返回的菜单格式与前端路由文件中的有些许不一致,则需重写layout里返回值menuDataRender,对数据进行改造组合。
export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) => {
return {
menuDataRender: () => handleMenuData([路由数据])
}