【问题标题】:Unexpected behaviour when rendering Blazorise charts呈现 Blazorise 图表时出现意外行为
【发布时间】:2021-06-02 21:23:23
【问题描述】:

我正在开发对所有人免费的投资跟踪应用程序。我将 net Core 与 blazor 和 Blazorise 一起用于图表。 我偶然发现了渲染图表的问题。从 Blazorise 官方文档中,我添加了方法 protected override async Task OnAfterRenderAsync(bool firstRender)(参见下面的代码)。此方法应在页面第一次呈现时重绘图表。问题是这种方法总是触发两次。它第一次渲染图表,第二次将它们留空(第二次触发时 firstRender = false)。如果我删除 if 块,图表呈现正常。

此外,我添加了应该刷新数据 + 图表的按钮。按下此按钮后,图表会刷新两次(这是不受欢迎的行为,因为它会分散用户的注意力),有趣的是数据本身(值)会在第二次之后发生变化。

以前有人处理过这个问题吗?

我的html代码

...
<div class="btn" @onclick="(async () => await RerenderPage())">Refresh Data</div>
...

我的代码

List<Models.VM.OverView> overview = new List<Models.VM.OverView>();

protected override async Task OnInitializedAsync()
{
    overview = await GetOverview(); //gets overview from api
}
        
public async Task<List<Models.VM.OverView>> GetOverview()
{
 return await Http.GetFromJsonAsync<List<Models.VM.OverView>>("/api/Overview/GetOverView/" + await GetUserIdAsync);
}
        
protected override async Task OnAfterRenderAsync(bool firstRender)
{
     if (firstRender)
     {
         await HandleRedraw();
     }        
}
        
async Task HandleRedraw()
{
    await pieChart.Clear();


    //this method goes in the overview object and gets data from it
    await pieChart.AddLabelsDatasetsAndUpdate(GetLabelsPieChart(), GetPieChartDataset());
}

【问题讨论】:

    标签: asp.net-core blazor blazorise


    【解决方案1】:

    await Rerenderpage() 在做什么? 从样本来看,它似乎使用了 bool isAlreadyInitialised 标志的用户。

        protected override async Task OnAfterRenderAsync( bool firstRender )
        {
            if ( !isAlreadyInitialised )
            {
               isAlreadyInitialised = true;
               await HandleRedraw();
            }
        }
    

    我假设 async () => await RerenderPage()) 调用了一些东西,然后调用了 chart.Update 以便组件知道它的 statuschanged 吗?

    【讨论】:

      猜你喜欢
      • 2019-06-15
      • 2019-04-11
      • 2021-04-21
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      相关资源
      最近更新 更多