C# 为什么Blazor嵌入式组件更新不正确
给定包含需要重用的代码的C# 为什么Blazor嵌入式组件更新不正确,c#,asp.net-core,blazor,blazor-client-side,C#,Asp.net Core,Blazor,Blazor Client Side,给定包含需要重用的代码的MainView.razor,可重用的代码将被移动到NewComponent.razorNewcomComponent需要一个参数,Route Route,在下面的示例中。参数通过参数规范传递 MainView.razor <NewComponent route="@route" /> @code { Route _route; [Parameter] public Route route { get { re
MainView.razor
,可重用的代码将被移动到NewComponent.razor
NewcomComponent
需要一个参数,Route Route
,在下面的示例中。参数通过参数规范传递
MainView.razor
<NewComponent route="@route" />
@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();
}
}
Route _route;
[Parameter]
public Route route
{
get { return _route; }
set
{
Console.WriteLine("Route changing to = " + value.Name);
_route = value;
StateHasChanged();
}
}
但是,从未指定任何控制台输出。更新Resource.razor
<NewComponent route="@route" />
@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();
}
}
Route _route;
[Parameter]
public Route route
{
get { return _route; }
set
{
Console.WriteLine("Route changing to = " + value.Name);
_route = value;
StateHasChanged();
}
}
路由正在更改但NewcomComponent的控制台输出从未发生的输出。为什么NewcomComponent没有更新?问题是,NewcomComponent最初是在
/Pages
目录中编译的,然后移动到项目中的/Components
目录中。将鼠标悬停在
上表明使用了.Pages
名称空间,即使该名称空间中没有存储任何文件。干净的重建可以纠正此问题