我的页面上有一个调用 DeleteApplication.razor 组件并传入所选应用程序的方法:
private void deleteApplicationSubmit()
{
var parameters = new ModalParameters
{
{ nameof(DeleteApplication.applicationData), applicationData }
};
Modal.Show<DeleteApplication>("Are you sure you would like to delete", parameters);
}
这将打开 DeleteApplication 弹出窗口。单击“确认/删除”按钮时,Delete 方法会关闭弹出窗口并在我的原始屏幕(APIShapes)上调用 deleteApplication 方法:
@code {
[CascadingParameter] BlazoredModalInstance BlazoredModal { get; set; } = default!;
[Parameter] public ApiApplication? applicationData { get; set; }
private APIShapes? apiShapes;
async Task Delete()
{
await apiShapes.deleteApplication(applicationData);
await BlazoredModal.CloseAsync();
}
async Task Cancel() => await BlazoredModal.CancelAsync();
}
deleteApplication方法然后调用api删除选中的应用程序。
我希望调用 api 删除所选项目会更新 UI 并删除该项目。相反,该项目会一直保留,直到我单击以加载不同的屏幕或进行刷新。
由于单击模态按钮不在 Blazor 生命周期内,因此您需要显式调用
StateHasChanged();
以在队列中放置渲染请求。