可以使用 Blazor 自带的 eventcallback
来实现当组件被移除时向上传递事件。在父组件中处理此事件,将会移除的组件后续的组件向上移动一个位置。
以下是一个示例代码:
// 子组件
@code {
[Parameter]
public EventCallback OnRemove { get; set; }
private async Task RemoveComponent()
{
await OnRemove.InvokeAsync();
}
}
// 父组件
组件列表
@for(int i = 0; i < components.Count; i++)
{
var component = components[i];
@(i + 1)
}
@code {
private List components = new List();
protected override void OnParametersSet()
{
components.Add(new MyComponent());
components.Add(new MyComponent());
components.Add(new MyComponent());
}
}
在上述示例代码中,MyComponent
组件被添加到了 components
列表中,点击 “删除此组件” 按钮时,会触发 OnRemove
事件将被点击的组件从列表中移除。移除组件之后,后续的组件的位置将会向上移动一个位置。
上一篇:Blazor组件类的继承问题