Как выполнить рефакторинг кода в Blazor OnParameterSetC#

Место общения программистов C#
Anonymous
Как выполнить рефакторинг кода в Blazor OnParameterSet

Сообщение Anonymous »

У меня есть набор страниц, которые следуют одинаковому шаблону /{report}/{id}, но где {report} заменяется конкретным именем для каждой страницы. У нас также есть одноэлементный reportManager, который раньше обновлялся в OnParameterSet страницы

Код: Выделить всё

protected override async Task OnParametersSetAsync()
{
if (reportManager.SelectedId != id) {
reportManager.SelectedId = id;
}

var item = reportManager.SelectedItem;
}
Теперь эта логика перенесена в компонент, который использует каждая из страниц. Но поскольку страницы будут выполнять вызовы reportManager.SelectedItem, OnParametersSetAsync компонента необходимо вызывать до OnParametersSetAsync страницы.
Есть ли какой-нибудь способ изменить порядок этого материала или лучше способ извлечь эту логику в какое-то общее место.
Я думал о наследовании, но в компонентах blazor это довольно некрасиво и немного неудобно, если вы хотите, чтобы компонент, который вы наследуете, заключал в себе производный компонент.
Я также подумал о создании страницы, которая соответствует /{report}/{id}, а затем предоставляет правильный компонент на основе параметра {report} , но затем каждый раз, когда добавляется страница, вам придется обновлять эту страницу «маршрутизации».
В противном случае мне, возможно, придется переработать reportManager, поскольку он немного неуклюж< /п>

Подробнее здесь: https://stackoverflow.com/questions/791 ... rameterset

Вернуться в «C#»