点击MudNavLink时如何保持MudNavGroup展开?求最优实现方案
解决方案
问题出在你给MudNavGroup绑定了全局的@onclick事件——当点击子元素MudNavLink时,事件会向上冒泡触发父元素的点击逻辑,导致展开状态意外切换。MudNavGroup本身自带仅点击标题/图标区域切换展开状态的默认行为,不需要手动绑定全局点击事件。
修改后的代码
<MudNavGroup Title="Exams" Icon="@Icons.Material.Filled.Settings" Expanded="@Exams"> <MudNavLink Title="Find Exam" href="findExam" Icon="@Icons.Material.Filled.AdminPanelSettings">Find an Exam</MudNavLink> <MudNavLink Title="Find Exam" href="ModifyRegistration" Icon="@Icons.Material.Filled.AdminPanelSettings">Modify Registration</MudNavLink> <MudNavLink Title="Find Exam" href="RegistrationForExam" Icon="@Icons.Material.Filled.AdminPanelSettings">Registration For Exam</MudNavLink> </MudNavGroup> <MudNavGroup Title="Laurel Information" Icon="@Icons.Material.Filled.Settings" Expanded="@Info"> <MudNavLink Href="/Officers" Icon="@Icons.Material.Filled.Receipt">Credits</MudNavLink> <MudNavLink Href="/Coordinators" Icon="@Icons.Material.Filled.Receipt">Coordinators</MudNavLink> <MudNavLink Href="/Webmaster" Icon="@Icons.Material.Filled.Receipt">Webmasters</MudNavLink> <MudNavLink Href="/Credits" Icon="@Icons.Material.Filled.Receipt">Webmasters</MudNavLink> </MudNavGroup>
补充说明
如果需要自定义展开/收起的逻辑(比如额外的状态同步、日志记录等),不要直接给MudNavGroup加@onclick,而是使用组件内置的OnToggle事件:
<MudNavGroup Title="Exams" Icon="@Icons.Material.Filled.Settings" Expanded="@Exams" OnToggle="@((expanded) => { Exams = expanded; // 这里添加自定义逻辑,比如状态同步、日志输出等 })"> <!-- 子项内容省略 --> </MudNavGroup>
这种方式既保留了组件默认的点击区域限制,又能实现自定义逻辑,完全匹配官方文档的交互表现。
内容的提问来源于stack exchange,提问作者Darryl Wagoner WA1GON
相关产品推荐
相关产品推荐

