Skip to content

Commit 1d65e22

Browse files
committed
feat(layout): add menuTextRender props
1 parent 9151e33 commit 1d65e22

File tree

2 files changed

+247
-275
lines changed

2 files changed

+247
-275
lines changed

packages/layout/src/components/SiderMenu/BaseMenu.tsx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,17 @@ export type BaseMenuProps = {
111111
) => React.ReactNode
112112
>;
113113

114+
/**
115+
* 修改 name,如果想做个简单的国际化,可以使用这个方法
116+
*/
117+
menuTextRender: WithFalse<
118+
(
119+
item: MenuDataItem,
120+
defaultText: React.ReactNode,
121+
menuProps: BaseMenuProps,
122+
) => React.ReactNode
123+
>;
124+
114125
/**
115126
* @name 处理 menuData 的方法,与 menuDataRender 不同,postMenuData处理完成后会直接渲染,不再进行国际化和拼接处理
116127
*
@@ -339,13 +350,17 @@ class MenuUtil {
339350
getIntlName = (item: MenuDataItem) => {
340351
const { name, locale } = item;
341352
const { menu, formatMessage } = this.props;
353+
let finalName = name;
342354
if (locale && menu?.locale !== false) {
343-
return formatMessage?.({
355+
finalName = formatMessage?.({
344356
id: locale,
345357
defaultMessage: name,
346358
});
347359
}
348-
return name;
360+
if (this.props.menuTextRender) {
361+
return this.props.menuTextRender(item, finalName, this.props);
362+
}
363+
return finalName;
349364
};
350365

351366
/**

0 commit comments

Comments
 (0)