我们需要在父组件的OnAfterRenderAsync
方法中获取子组件列表,但我们不知道如何做到这一点。
我们尝试使用RenderBuilder
和GetFrames
,但这总是为空。
我们有一个Splitter组件,其中包含N个分割区作为子组件,我们需要在OnAfterRenderAsync
方法中获取所有区域的父组件。
我们需要在父组件的OnAfterRenderAsync
方法中获取子组件列表,但我们不知道如何做到这一点。
我们尝试使用RenderBuilder
和GetFrames
,但这总是为空。
我们有一个Splitter组件,其中包含N个分割区作为子组件,我们需要在OnAfterRenderAsync
方法中获取所有区域的父组件。
如果您有一种类型为X的父组件,并且您想要引用所有与之紧密耦合的类型为Y的子节点(例如TabControl和TabPages),那么您可以执行以下操作。
1:在父组件中添加一个包装器来包含您的@ChildContent
,并添加一个指向它本身的级联值。
<CascadingValue Value=@this>
@ChildContent
</CascadingValue>
2:通过 CascadingParameter
,您可以在子组件中使用该值。
@code
{
[CascadingParameter]
public YourParentComponent ParentComponent { get; set; }
}
3:您的孩子可以通知他们的父母知道他们的存在
protected override void OnInitialized()
{
if (ParentComponent == null)
throw .............("Must be used within MyParentComponent");
MyParentComponent.AddChild(this);
}
如果您的子组件有条件渲染,请让它们实现IDisposable接口,这样它们就可以通知父组件将它们从列表中移除。
IsFixed=@true
。就这样。 - Peter Morris@if(checkboxValue) { <Child /> } <Child />
。我如何按正确的顺序获取这些孩子? - Liero