我在 Blazor 应用程序中使用本地存储,当打开/关闭浏览器时,它可以完美保存。但是当我重新启动应用程序时,我的本地存储突然变空。有什么想法吗?
我尝试在 StackOverflow 和 Google 上查找可能的解决方案,但遗憾的是没有找到任何有用的东西......我希望你们中的一些人可以提供帮助
要保存的代码:
string? storage = await localStorage.GetItemAsync<string>("cart");
List<WarehouseItem> orderesItems = new();
if (storage == null)
{
orderesItems.Add(new()
{
Id = warehouseItems[0].Id,
WarehouseId = warehouseItems[0].WarehouseId,
ItemId = itemId,
Quantity = 1
});
string serializedItem = JsonSerializer.Serialize(orderesItems);
await localStorage.SetItemAsStringAsync("cart", serializedItem);
要加载的代码:
string? storage = await _localStorage.GetItemAsStringAsync("cart");
if (storage != null)
{
var storedValue = JsonSerializer.Deserialize<List<WarehouseItem>>(storage);
CartCount = storedValue.Sum(x => x.Quantity);
}
(不要介意缺少 } 标签,它们确实会关闭)
更新:发现问题!
运行应用程序时,它会自动打开 Chrome,但处于某种隐身状态,不会保存本地存储。所以!为了解决这个问题,我只需自己打开 Chrome,然后它就登录到我的帐户了:)