【发布时间】:2020-03-27 21:59:22
【问题描述】:
我有 3 个组件。当我想要从组件 B 调用组件 C 的 New() 方法时。
这适用于以下代码(我得到了 Console.Writeline)。但是用户界面没有更新。我试图在New() 方法中设置StateHaseChanged(),但这给了我以下错误。非常感谢!
错误
WASM: System.InvalidOperationException: 渲染句柄还没有 已分配。
ComponentA(侧边栏项)
<NavLink href="@href">
<div @onclick="OnClick.InvokeAsync">@Text</div>
</NavLink>
@code {
[Parameter] public string Text { get; set; }
[Parameter] public EventCallback OnClick { get; set; }
}
组件B(侧边栏)
<ComponentA Text="Something" Onclick="@(() => componentC.New())" />
@code {
ComponentC componentC = new ComponentC();
}
组件C(页面)
@code {
public void New()
{
//Dostuff..
Console.WriteLine("Testing");
//StateHasChanged();
}
}
【问题讨论】:
-
我认为您的组件命名略有偏差。可能
ComponentB在内部使用ComponentC(在@code 块中)。这是正确的吗? -
@Artak 这确实是正确的,我已经在我的问题中改变了它。谢谢!