我有一个选项卡控件,并在每个选项卡上动态创建具有相同组件(例如Employee(的选项卡。当创建第一个选项卡时,构造函数和OnInitialized将执行。但是,当我创建另一个(比如为另一个Employee(时,构造函数和OnInitialized不会执行。(每个OnParametersSetAsync运行多次(。
最初,我在OnInitialized中检索了Employee信息。我认为这是我的首选做法。但由于它不为第二个Employee运行,我不知道从哪里检索第二个Employee信息。我看不到OnParametersSetAsync的可预测行为。
如果在这种情况下有一个事件总是运行一次,那么这可能会起作用。有什么想法吗?
我认为您试图强制blazor重新初始化组件。
实现这一点的一种方法是使用@key属性。
如果您将组件设置为<EmployeeComponent @key=”@Employee.Id”
,那么每次更改employee和父组件的转发器时,blazor-diff算法都会被诱骗创建新的EmployeeComponent,而不是重新渲染旧组件。
如果没有您的代码示例,很难说它是否是该技术的正确用例。你的问题可能会有更优雅的解决方案。