我一直在使用Blazor WebAssembly示例作为新应用程序的基础,并且运行良好。但我希望使NavMenu更动态。
在这种情况下,我想在NavMenu中有特定于管理员/主持人的选项,我要在用户登录后尝试添加这些选项。我目前正在使用Navigationmanager.NavigateTo(page,false)在Razor页面之间进行切换。它实际上实际上是一个Razor页面,因此,登录名和动态表位于同一页面上,具体取决于应用程序是否具有令牌。
我使用false选项来确保它不会刷新整个页面,否则令牌将丢失。我现在发现奇怪的是,如果单击NavBar,它将更新NavBar,显示新的管理选项,这很好。但是我希望使用Navigationmanager.NavigateTo(page,false)在代码中执行相同的操作,也可以使导航栏更新。
我一直在看一些有关Blazor以及如何使用组件的视频和教程,但是我仍然发现它使如何在组件之间调用以及获取外部/父组件进行更新感到困惑。
我可以想到不同的方法使它工作,但我希望弄清楚实现它的正确方法是什么,并遵循代码约定。我怀疑即使我一直在研究这样的东西,我也缺少一些基本的方法来做这样的事情。
我添加的代码
<li class="nav-item px-3">
<NavLink class="nav-link" href="counter">
<span class="oi oi-list-rich" aria-hidden="true"></span> Noter
</NavLink>
</li>
@if (ApiService.Token.HasValue)
{
<li class="nav-item px-3">
<NavLink class="nav-link" href="logout">
<span class="oi oi-list-rich" aria-hidden="true"></span> AdminStuff
</NavLink>
</li>
}
<li class="nav-item px-3">
<NavLink class="nav-link" href="logout">
<span class="oi oi-list-rich" aria-hidden="true"></span> Log ud
</NavLink>
</li>