在使用我继承的基类从组件访问列表时遇到了一些问题。
我的基类是这样的:
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>
}
}