Обновление других компонентов Blazor из других мест приложения - PullRequest
1 голос
/ 04 июля 2019

Рассмотрим сценарий, в котором у вас есть динамическая навигация (скажем, список категорий сыров). Компонент навигации существует в макете, который имеет различные другие компоненты контента. Один из них позволяет пользователю обновить название выбранной категории сыров. Но ... как мы отразим это обратно на компоненте навигации? Если кто-то рассматривал его как дерево, вам нужно было бы перейти (в коде) к макету, а затем перейти к компоненту навигации, где можно обновить состояние (либо запросив сервер, либо передав то, что является обновлением). ).

1 Ответ

1 голос
/ 04 июля 2019

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

SteveSanderson

Вообще говоря, выне может передавать данные из встроенных компонентов в MainLayout.

Однако (ваш вопрос довольно расплывчатый, и вы должны были дать более подробное описание компонентов), вы можете определить сервис AppState, который может обрабатывать состояния задействованных компонентов и обеспечивает доступ к данным состояния.из этих компонентов.

Посмотрите этот пример, созданный Стивом Сандерсоном, как реализовать сервис AppState.Это также демонстрирует, что я собираюсь сказать дальше: https://github.com/aspnet/samples/tree/master/samples/aspnetcore/blazor

Другой способ передачи данных из дочернего компонента в родительский компонент - определение метода, который может иметь параметры, в родительскомкомпонента, и вызывается из дочернего компонента через обработчики событий.

Более конкретный ответ может быть предоставлен, если вы предоставите нам схемы ваших компонентов ...

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

...