Поскольку NavMenu является дочерним компонентом MainLayout, вы можете передать параметр компонента в NavMenu. Выполните следующие действия:
Определите свойство publi c в NavMenu для хранения значения, переданного из родительского
NavMenu.razor
@code {
[Parameter]
public string Value { get; set; }
}
И в MainLayout сделайте это :
<div class="sidebar">
<NavMenu Value="@SomeValue" />
</div>
@code{
private string SomeValue = "A value from MainLayout";
}
Вот и все ...
Однако, если вы настаиваете на использовании CascadingValue, что на самом деле не подходит в данном случае, вы можете сделать это:
NavMenu.razor
@code {
[CascadingParameter]
public string Value { get; set; }
protected override async Task OnInitializedAsync()
{
Console.WriteLine(Value);
await Task.CompletedTask;
}
}
И в MainLayout сделайте это:
<div class="sidebar">
<CascadingValue Value="@SomeValue">
<NavMenu />
</CascadingValue>
</div>
@code{
private string SomeValue = "A value from MainLayout";
}