Blazor:无法访问继承基类中的组件中的对象



在使用我继承的基类从组件访问列表时遇到了一些问题。

我的基类是这样的:

public class MapBase : ComponentBase
{
[Inject]
protected HttpClient Http { get; set; }
public List<Thing> things;
protected override async Task OnInitializedAsync()
{
things = await Http.GetFromJsonAsync<List<Thing>>("data/things-data.json");
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
//doing stuff with my things list and it works perfectly.
}

}

在我的基类中一切都很好,我可以访问(它有项目(";事物;列表。然后我有一个继承基类的组件:

@inherits MapBase
<div id="myComponent">
<select>
@foreach (var thing in things)
{
<option>@thing</option>
}
</select>
</div>

网页只是因为事物列表而停止工作(当我删除对事物列表的引用时,它就工作了(。我的问题是什么?

这是因为things实例没有初始化,所以它为null,并抛出NullReferenceException,初始化实例或在@foreach之前检查null

public List<Thing> things = new List<Thing>();

@if (things != null)
{     
@foreach (var thing in things)
{
<option>@thing</option>
}
}

相关内容

  • 没有找到相关文章

最新更新