blazor - @code 块未触发 onclick 事件
问题描述
我正在尝试在 Blazor 中扩展菜单,这是一个为什么会是报告等的示例,因为我可能有多个报告,我想隐藏这些可能性,直到我主动寻找它们。
使用 stock 模板,我向 NavMenu 添加了一个 onClick 事件:
bool _expandScreen = false;
void ExpandScreens()
{
if (_expandScreen)
{
_expandScreen = false;
}
_expandScreen = true;
StateHasChanged();
}
以下 html 位于菜单项之一的下方:
@if (_expandScreen)
{
<NavLink class="expand-menu" href="">
<span>Companies</span>
</NavLink>
<NavLink class="" href="">
<span>DIN</span>
</NavLink>
}
当我调试时,断点永远不会在代码块中命中。针对 html 的断点确实如此,但由于 _expandScreens 的状态未更新,它仍然评估为 false。
我已经按照另一篇 SO 帖子的建议检查了 _imports.razor。根据应用程序中的示例和 msdn 上的示例,我的语法似乎是正确的。
有人发现我错过的代码有什么问题吗?
编辑: NavMenu 的完整代码如下所示:
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
<ul class="nav flex-column">
<li class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="oi oi-home" aria-hidden="true"></span> Home
</NavLink>
</li>
<li class="nav-item px-3">
<NavLink class="nav-link" href="counter">
<span class="oi oi-plus" aria-hidden="true" @onclick="ExpandScreens"></span> Screens
</NavLink>
@if (_expandScreen)
{
<NavLink class="expand-menu" href="">
<span>Companies</span>
</NavLink>
<NavLink class="" href="">
<span>DIN</span>
</NavLink>
}
</li>
<li class="nav-item px-3">
<NavLink class="nav-link" href="fetchdata">
<span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
</NavLink>
</li>
</ul>
</div>
@code {
bool _collapseNavMenu = true;
bool _expandScreen = false;
string NavMenuCssClass => _collapseNavMenu ? "collapse" : null;
void ToggleNavMenu()
{
_collapseNavMenu = !_collapseNavMenu;
}
void ExpandScreens()
{
if (_expandScreen)
{
_expandScreen = false;
}
_expandScreen = true;
StateHasChanged();
}
}
解决方案
推荐阅读
- reactjs - 尝试在单独的组件中选择 menuItems - 如何解决“功能组件不能被赋予 refs”错误?
- javascript - 通过 axios post 向 sql 发送空值
- sql - IoT 中心/流分析 - SQL - 将传入时间戳转换为日期时间
- python - 如何替换字符串中的 `\n` 而不是 Python 中的 `\n\n`?
- nestjs - 安装后 Nestjs mongoose 模块出现问题
- r - 将 Firefox 书签 JSON 文件转换为 markdown
- python - FileNotFoundError: [WinError 2] 我在 cmd/Pycharm 中运行 pyspark 时系统找不到指定的文件
- java - Java GC日志中的“其他”是什么意思?
- c++ - 为什么只打印名字的第一个字母?
- python - 如何在 Python 中从 field.Method 访问不同的参数