我尝试使用mud对话框添加或编辑显示在MudTables
中的数据。当我添加新数据或编辑时,删除了关闭对话框后不刷新的表。只有在按下F5
后,我才能看到更新的数据集。
My Dialog方法:
private async Task OpenDialog(TaxesModel tax = null){
var parameters = new DialogParameters{{ nameof(TaxDialog.Model), tax}};
DialogService.Show<TaxDialog>(nameof(TaxDialog).Humanize(), parameters);
//reload list of taxes
await GetTaxesAsync();
StateHAsChanged();
}
在这种情况下,StateHAsChanged()
没有刷新页面。但在另一种没有对话的情况下,它可以正常工作。
对话框一打开,在数据库发生任何更改之前,您就要刷新数据。在对DialogService.Show
的调用之后,执行立即继续到下一行await GetTaxesAsync()
。
您需要等待对话框关闭,然后获取新数据。
private async Task OpenDialog(TaxesModel tax = null){
var parameters = new DialogParameters{ { nameof(TaxDialog.Model), tax } };
var dialog = DialogService.Show<TaxDialog>(nameof(TaxDialog).Humanize(), parameters);
// wait for the dialog to close
// execution is stopped here until the dialog returns a result
var result = await dialog.Result;
if (!result.Cancelled)
{
await GetTaxesAsync();
// StateHasChanged call is not needed I think
//StateHasChanged();
}
}
https://mudblazor.com/components/dialog#passing-数据