小编KSi*_*Sib的帖子

Blazor OnAfterRenderAsync Javascript

所以我一直在玩 Blazor WebAssembly,但我不知道如何解决这个问题。基本上,我有一个 NavMenu.razor 页面,它将从 JSON 文件异步获取 NavMenuItem 数组。这很好用。现在,我想要做的是向从<NavLink>下面的 foreach 循环中的标签生成的每个锚点添加一个事件侦听器。

该循环之外的 NavLink(异步函数未填充的那个)成功地正确应用了 addSmoothScrollingToNavLinks() 函数。其他 NavLink 没有。似乎它们还没有在 DOM 中。

我猜有一些奇怪的竞争条件,但我不知道如何解决它。关于我如何解决这个问题的任何想法?

导航菜单.razor

@inject HttpClient Http
@inject IJSRuntime jsRuntime

@if (navMenuItems == null)
{
    <div></div>
}
else
{
    @foreach (var navMenuItem in navMenuItems)
    {
        <NavLink class="nav-link" href="@navMenuItem.URL" Match="NavLinkMatch.All">
            <div class="d-flex flex-column align-items-center">
                <div>
                    <i class="@navMenuItem.CssClass fa-2x"></i>
                </div>
                <div class="mt-1">
                    <span>@navMenuItem.Text</span>
                </div>
            </div>
        </NavLink>
    }
}

<NavLink class="nav-link" href="#" Match="NavLinkMatch.All">
    <div class="d-flex flex-column align-items-center">
        This works!
    </div>
</NavLink>

@code {
    private …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core blazor-client-side

4
推荐指数
3
解决办法
6329
查看次数

标签 统计

asp.net-core ×1

blazor-client-side ×1

c# ×1