Kri*_*nac 1 .net c# asp.net-core blazor
我们需要在OnAfterRenderAsync父组件的方法中获取子组件的列表,但是我们不知道该怎么做。我们尝试使用RenderBuilderandGetFrames但这始终为空。我们有带有 N 个分割区域的 Splitter 组件作为子组件,我们需要在OnAfterRenderAsync方法中获取父组件中的所有区域。
如果您有一个 X 类型的父组件,并且想要引用所有紧耦合的 Y 类型的子组件(例如,TabControl 和 TabPages),那么您可以这样做。
1:在 Parent 中,在您周围添加一个包装器,@ChildContent以添加一个指向自身的级联值。
<CascadingValue Value=@this>
@ChildContent
</CascadingValue>
Run Code Online (Sandbox Code Playgroud)
2:在您的孩子中,您可以通过 CascadingParameter
@code
{
[CascadingParameter]
public YourParentComponent ParentComponent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
3:然后你的孩子可以通知他们的父母他们的存在
protected override void OnInitialized()
{
if (ParentComponent == null)
throw .............("Must be used within MyParentComponent");
MyParentComponent.AddChild(this);
}
Run Code Online (Sandbox Code Playgroud)
如果您的子组件是有条件地呈现,则让它们实现 IDisposable,以便它们可以通知父组件将它们从其列表中删除。
Blazor 大学有一个示例,展示了如何创建 TabControl - https://blazor-university.com/templating-components-with-renderfragements/creating-a-tabcontrol/
| 归档时间: |
|
| 查看次数: |
1824 次 |
| 最近记录: |