Blazor组件生命周期-在设置参数之后但在绑定之前,如何在组件中执行异步操作

Blazor组件生命周期-在设置参数之后但在绑定之前,如何在组件中执行异步操作,blazor,blazor-webassembly,Blazor,Blazor Webassembly,我有一个对话框组件,可以弹出来编辑网格的一行 单击该行时,我设置了一个selectedItem变量,该变量绑定到对话框组件的一个参数,并使对话框可见 问题是MyDialog组件需要从selectedItem获取属性,然后对API进行异步调用,并在selectedItem绑定到对话框中的所有字段之前加载一些数据 如果我在OnParametersSetAsync()中调用API,则为时已晚,已绑定selectedItem 如果我尝试使用SetParametersAsync(ParameterVi

我有一个对话框组件,可以弹出来编辑网格的一行

单击该行时,我设置了一个
selectedItem
变量,该变量绑定到对话框组件的一个参数,并使对话框可见


问题是MyDialog组件需要从
selectedItem
获取属性,然后对API进行异步调用,并在
selectedItem
绑定到对话框中的所有字段之前加载一些数据

如果我在
OnParametersSetAsync()
中调用API,则为时已晚,已绑定
selectedItem

如果我尝试使用
SetParametersAsync(ParameterView参数)
,如果在调用绑定参数的基本实现之前尝试执行异步操作,则会出现错误


这似乎是一个相当正常的场景,这里还有其他方法吗?

有条件地显示绑定元素:

@if (_ready)
{
    <label>@MyObject.SomeProperty</label>
}

@code {
    [Parameter] public MyClass MyObject { get; set; }

    // Do not create elements bound to parameter until I say
    bool _ready = false;   

    protected override async Task OnParametersSetAsync()
    {
        await MyApi.GetSomeMoreData();
        // Done what I need to do, you can render the bound elements now
        _ready = true;   
    }
}
@if(_ready)
{
@MyObject.SomeProperty
}
@代码{
[参数]公共MyClass MyObject{get;set;}
//在我说之前,不要创建绑定到参数的元素
bool_ready=false;
受保护的重写异步任务OnParametersSetAsync()
{
等待MyApi.GetSomeMoreData();
//完成了我需要做的,现在就可以渲染绑定元素了
_就绪=正确;
}
}

我没有绑定
Visible
属性,而是将整个
对象放入一个条件:
@if(dialogueVisible){}
啊,好主意,这解决了我的问题,谢谢