【发布时间】:2020-11-05 21:01:20
【问题描述】:
我需要在 Web 程序集中动态更新我的侧导航栏。
你能建议我怎么做吗?
@page "/ChildPage"
@code{
public List<string> menus = new List<string>();
NavMenu n = new NavMenu();
protected override async Task OnInitializedAsync()
{
menus.Add("Content 1");
menus.Add("Content 2");
await Task.Run(() => n.MenuItems = menus);
}
}
在 Navmenu 剃须刀中做了一些如下操作。
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
<ul class="nav flex-column">
@if (MenuItems != null)
{
@foreach (var menu in MenuItems)
{
<li class="nav-item px-3">
<NavLink class="nav-link" href="Page1">
<span class="oi oi-plus" aria-hidden="true"></span> @menu
</NavLink>
</li>
}
}
</ul>
</div>
@code {
private bool collapseNavMenu = true;
private string NavMenuCssClass => collapseNavMenu ? "collapse" : null;
private void ToggleNavMenu()
{
collapseNavMenu = !collapseNavMenu;
}
public List<string> MenuItems = new List<string>() { "Page 1", "Page 2"};
}
你能建议我如何从每个页面更新导航栏吗?
【问题讨论】:
-
ChildPage 组件中的代码与 MainLayout 有什么关系?请详细说明您要实现的目标...
-
旁注,不要在 WebAssembly 中使用
Task.Run()。目前它是无效的,当 Wasm 将来确实获得线程时,这种代码可能会中断。 -
我想从一个页面更新菜单项
-
顺便说一句,我只使用 webassembly。我没有任何服务器代码。
标签: c# blazor webassembly