Я использую Server Side Blazor и у меня странная ошибка, причина которой я не получаю прямо сейчас ...
Ошибка возникает в этом методе:
async Task UpdateBasketAtLocalStorage(BasketAnimationType animationType)
{
try
{
await LocalStorage.SetItemAsync("sushikaoru.Basket", Basket);
AppState.AnimationHandler(animationType);
StateHasChanged();
}
catch (Exception ex)
{
try
{
await LocalStorage.RemoveItemAsync("sushikaoru.Basket");
}
catch (Exception ex1)
{
await LocalStorage.ClearAsync();
My.Log.Error(ex1);
}
My.Log.Error(ex);
}
}
Трассировка стека видна на следующем изображении (https://ibb.co/dpBg0kN).
Вышеприведенный метод вызывается обработкой событий и инициализируется здесь:
async Task InitBasket()
{
BasketState basket = null;
try
{
basket = await LocalStorage.GetItemAsync<BasketState>("sushikaoru.Basket") ?? new BasketState();
}
catch (Exception)
{
basket = new BasketState();
}
Basket = basket;
StateHasChanged();
Basket.OnBasketChanged -= new Action<BasketAnimationType>(async (e) => await UpdateBasketAtLocalStorage(e));
Basket.OnBasketChanged += new Action<BasketAnimationType>(async (e) => await UpdateBasketAtLocalStorage(e));
}
Вот OnAfterRenderAsync, инициирующий загрузку корзинычерез локальное хранилище.
protected override async Task OnAfterRenderAsync(bool firstRender)
{
try
{
await InitBasket();
await JS.InvokeAsync<object>("scrollFunction");
if (firstRender)
{
await CheckOpeningTime();
}
}
catch (Exception ex)
{
My.Log.Error(ex);
}
}
Я думаю, что вся структура плохая и должна быть оптимизирована, но я не знаю, какая проблема вызывает затруднения. Надеюсь получить полезную подсказку, чтобы это исправить!
Thx!