我一直在玩 Blazor 并尝试构建一个简单的应用程序。我尝试做的第一件事是异步加载数据(在我的例子中来自 LocalStorage)。
protected override async Task OnInitAsync()
{
await Log.Log($"{nameof(IndexComponent)}.{nameof(OnInitAsync)}");
Model = await LocalStorage.GetItem<DataModel>("model");
}
我的渲染代码如下所示:
<div>@Model.Attribute</div>
我在呈现页面时收到 NullReferenceException,而且浏览器进入无响应状态,此时我所能做的就是关闭浏览器选项卡并重新启动 Blazor 应用程序。
尽管事实证明这种行为是设计使然,但我没有在任何文档中找到它的解释,而且我认为在这里授予共享是出乎意料的。希望它会对其他人有所帮助(请参阅下面我自己的答案)。