Как выполнить изменение состояния компонента Blazor через его экземпляр. Ошибка. Дескриптор рендеринга еще не назначен.C#

Место общения программистов C#
Ответить
Anonymous
 Как выполнить изменение состояния компонента Blazor через его экземпляр. Ошибка. Дескриптор рендеринга еще не назначен.

Сообщение Anonymous »

Я пытаюсь изменить флаг компонента через его экземпляр, но получаю сообщение об ошибке: Дескриптор рендеринга еще не назначен.
У меня есть компонент под названием PopMessage .razor

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

@if (isDisplay)
{

Message

}

@code{
private bool isDisplay = false;
public void PopShow()
{
try
{
isDisplay = true;
StateHasChanged();
}
catch (Exception ex){}
}
}
Зарегистрировал его как builder.Services.AddScoped
()
И в другом компоненте Home.razor

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

@page "/"
@inject PopMessage _popMessage
Pop message

@code{
private void PopPrint()
{
_popMessage.PopShow();
}
}
Теперь при нажатии кнопки выдается сообщение об исключении, поскольку дескриптор рендеринга еще не назначен в методе PopShow.
Я не очень понял суть вопроса. Компонент
загружен. Но при вызове сообщения PopShow выдает это исключение. Без StateHasChanged() исключение не выдается, но, конечно, состояние не обновляется.


Подробнее здесь: https://stackoverflow.com/questions/792 ... ance-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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