我看到过使用 @ref
属性从父组件调用子组件方法的示例,但是当我尝试在 foreach
循环中使用它时,只有最后一个呈现的组件方法被调用了,而不是所有的。下面是我的组件示例。
父组件:
<button type="button" class="btn btn-link" @onclick="BtnSyncAll_Click">Run<button>
@foreach(var site in Sites)
{
<Site @ref="SiteView" @Code="@site"></Site>
}
@code {
protected Site SiteView;
protected List<string> Sites { get; set; } = new List<string>
{
"A00001",
"A00002"
};
protected async Task BtnSyncAll_Click()
{
await SiteView.Sync();
}
}
子组件(Site.razor):
<div>
<p>@Code>/p>
</div>
@code {
[Parameter]
public string Code { get; set; }
protected async Task Sync()
{
await ...
}
}
Sites
? - VencovskySite
组件的await SiteView.Sync()
吗? - VencovskySite
组件实例中调用SiteView.Sync()
。我已经更新了我的问题并附上了Sites
的声明。 - Jason Ayer