【问题标题】:Why is this Blazor embedded component not updating correctly为什么此 Blazor 嵌入式组件未正确更新
【发布时间】:2019-12-18 16:03:51
【问题描述】:

给定MainView.razor,其中包含需要重用的代码,可重用代码被移动到NewComponent.razorNewComponent 需要一个参数,在下面的示例中为 Route route。参数通过参数规范传递。

MainView.razor

<NewComponent route="@route" />

NewComponent.razor 被扩充,以便在控制台上记录任何更改。

NewComponent.razor

@code
{
    Route _route;
    [Parameter]
    public Route route
    {
        get { return _route; }
        set
        {
            Console.WriteLine("XXXXXXXXXXXXXXXX Route = " + value.Name);
            _route = value;
        }
    }

    protected override Task OnParametersSetAsync()
    {
        Console.WriteLine("YYYYYYYYYYYYYYYZZ");
        return base.OnParametersSetAsync();
    }
}

但是,从未指定控制台输出。更新中Resource.razor

Route _route;
[Parameter]
public Route route
{
    get { return _route; }
    set
    {
        Console.WriteLine("Route changing to = " + value.Name);
        _route = value;
        StateHasChanged();
    }
}

输出路线正在改变,但 NewComponent 的控制台输出永远不会发生。为什么 NewComponent 没有更新?

【问题讨论】:

    标签: c# asp.net-core blazor blazor-client-side


    【解决方案1】:

    问题是NewComponent最初是在/Pages目录下编译的,然后在项目中移动到/Components目录下。悬停在&lt;NewComponent route="@route" /&gt; 上表明.Pages 命名空间被使用,即使那里没有存储文件。干净的重建解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-01
      • 2020-05-11
      • 2022-11-10
      • 2014-06-21
      • 2023-04-09
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      相关资源
      最近更新 更多