我在一个项目中使用 React Metis 菜单。其中一项要求是以以下方式格式化菜单:
*Dashboard*
- Item A
- Sub Item A
- Sub Item B
- Item B
- Sub Item C
*Analytics*
- Item C
- Sub Item D
- Sub Item E
从结构来看,我认为我可以使用 2 个 Metis 菜单,以便在单个可点击菜单项之前可以使用不同的标题(仪表板/分析)。
该功能效果很好,但我遇到了另一种情况,我现在有 2 个可能的活动项目同时突出显示。
我参考了https://www.npmjs.com/package/react-metismenu#active-link-selectors上的 API ,这表明我们可以使用activeLinkLabel
,activeLinkTo
来覆盖/控制活动选择器。但是,它似乎仅在首次加载时才有效,但随后的单击将使更改过时。
...
const [ selected, setSelected ] = useState('');
const handleOnSelected = (event) => {
const item = event.currentTarget;
...
...
setSelected(item.name);
}
...
return (
<Fragment>
<h5>Dashboard</h5>
<MetisMenu activeLinkTo={selected} onSelected={handleOnSelected} content={DashboardItems} className="vertical-nav-menu" />
<h5>Analytics</h5>
<MetisMenu activeLinkTo={selected} onSelected={handleOnSelected} content={AnalyticsItems} className="vertical-nav-menu" />
</Fragment>);
有没有人使用过这个库或者可以指出我可能从 API 中错误地解释了什么?