Передайте параметр навигации в компонент Nav или Layout в Blazor - PullRequest
1 голос
/ 14 мая 2019

В приложении Blazor (на стороне сервера) у меня есть вложенный макет.Когда мы переходим на страницу во вложенном макете, у меня есть навигация для перехода на другие страницы.URL целевой страницы - / items / 3, где 3 - {id: int}.Теперь, чтобы перейти на другие страницы, мне нужно передать этот идентификатор компоненту Nav / Layout - чтобы я мог использовать этот идентификатор на других s.Как передать этот идентификатор компоненту Nav или Layout?

Попытка размещения тега [Parameter] на компоненте Nav или Layout, но параметр не заполняется.

1 Ответ

1 голос
/ 14 мая 2019

Я не думаю, что вы можете передать значение из компонента в компонент макета. Такой функции не существует ... Но, я думаю, вы можете использовать некоторые взломы. Однако вы должны использовать IUriHelper для перехода на другую страницу, что-то вроде этого:

@inject Microsoft.AspNetCore.Blazor.Services.IUriHelper UriHelper

<button onclick=@Navigate>Click me to navigate to another page</button>


@functions {
    private void Navigate()
    {
        UriHelper.NavigateTo("/hello-world");
    }
}

Edit: Как я уже писал выше, нет способа передать параметр из дочернего компонента в родительский компонент. Вы должны настроить свое приложение в соответствии с функциями, поведением и ограничениями, предоставляемыми Blazor. Ниже приведена ссылка на проблему в Github, в которой вы можете прочитать и понять механизм передачи параметров. Есть также комментарий Стива Андерсона, в котором он предлагает, как вы можете взломать это: https://github.com/aspnet/Blazor/issues/857

Надеюсь, это поможет ...

...