在Blazor中每两秒显示一次字符串列表中的项目

问题描述

在BlazorApp索引内页中,我有一个函数,在其中将字符串添加到这样的列表中:

public List<string> consol { get; set; } = new List<string>();
 public void SecondMain()
            { 
                consol.Add("Some text1"); 
                consol.Add("Some text2");
                ...
            }

然后我显示添加到列表中的每个字符串:

<button @onclick="SecondMain" class="btn btn-primary">display</button>
@foreach (var item in consol)
                {
                  <p>item</p>
                }

工作正常。但是,所有字符串都立即显示在视图中。有没有办法让它们每隔几秒钟出现一次?

解决方法

@onclick支持异步处理程序:

public async Task SecondMain()
{ 
    consol.Add("Some text1"); 

    await Task.Delay(1000);  // 1 sec
    consol.Add("Some text2");
    StateHasChanged();

    await Task.Delay(1000);  // 1 sec
    consol.Add("Some text3");     
}

您将需要一个StateHasChanged();除了第一个和最后一个字符串以外的所有字符串。根据需要添加Task.Delay()。