Может ли родительский компонент Blazor знать, сколько в нем дочерних компонентов? - PullRequest
0 голосов
/ 04 ноября 2019

Я создаю 2 блейзера: AlertMessage и AlertMessageGroup. AlertMessageGroup предназначен для содержания в нем нескольких AlertMessage компонентов. Я хочу, чтобы AlertMessageGroup имел логику отображения, основанную на числе и типе AlertMessage s (AlertMessageType - это параметр AlertMessage, и, вероятно, будет ссылаться на значение перечисления).

Возможно ли этодля родительского компонента (например, AlertMessageGroup), чтобы знать, сколько дочерних компонентов (например, AlertMessage) он содержит, и иметь основанную на этом логику отображения?

(я добавлю это в идеале Я хотел бы иметь возможность использовать один AlertMessage автономный, без необходимости включать его в AlertMessageGroup, если я не хочу)

1 Ответ

1 голос
/ 04 ноября 2019

Вы можете определить коллекцию компонентов AlertMessage в компоненте AlertMessageGroup, передать захваченную ссылку компонента ( this ) в AlertMessage, которая должна добавить себя в AlertMessageGroup в своем событии жизненного цикла OnInitialized.

Фрагмент кода для AlertMessage.razor

[CascadingParameter]
public AlertMessageGroup ContainerParent { get; set; }


protected override void OnInitialized()
{
    ContainerParent.AddChild(this);
}

Фрагмент кода для AlertMessageGroup.razor

// Передать ссылку на компонент дочерним компонентам

 <CascadingValue Value=this>

    </CascadingValue>

    @code {
    // Code to add add the children to the parent...

    }

Hope I 'м ясно ...

...