.net core 从列表中删除项不会刷新正确的组件
我有一个Blazor页面,该页面根据我动态添加/删除项目的列表显示组件列表:.net core 从列表中删除项不会刷新正确的组件,.net-core,blazor,.net Core,Blazor,我有一个Blazor页面,该页面根据我动态添加/删除项目的列表显示组件列表: <TelerikButton OnClick="() => State.AddSymbols(SymbolToAdd)">Add</TelerikButton> @foreach (var symbolToDisplay in State.SymbolsToDisplay) { <StockGraph SymbolToDisplay="@symbolToD
<TelerikButton OnClick="() => State.AddSymbols(SymbolToAdd)">Add</TelerikButton>
@foreach (var symbolToDisplay in State.SymbolsToDisplay)
{
<StockGraph SymbolToDisplay="@symbolToDisplay" OnRemoved="() => State.RemoveSymbol(symbolToDisplay)"/>
}
以及组件的代码:
<div class="stock-graph">
<p>
@companyData?.companyName
</p>
<div>
<TelerikButton class="delete-item" onclick="@OnRemoved">X</TelerikButton>
</div>
<TelerikChart ref="@chart">
<TelerikChartSeriesItems>
<TelerikChartSeries Type="ChartSeriesType.Line" Data="@data.StockValues"
Field="@nameof(StockValueData.StockValue)"
CategoryField="@nameof(StockValueData.Date)">
</TelerikChartSeries>
</TelerikChartSeriesItems>
<TelerikChartValueAxes>
<TelerikChartValueAxis Color="red"></TelerikChartValueAxis>
</TelerikChartValueAxes>
</TelerikChart>
@公司数据?公司名称
X
这应该很简单。但由于某些原因,在删除零部件时,即使列表中删除了所需的值并包含所有正确的值,也始终是最后一个显示的零部件被删除
我有一个在github上运行的代码示例:
只需添加随机股票符号,如GOOG、AAPL、ACC等,那么问题就来自于我初始化/更新组件参数的方式。 在需要更新页面和组件中的数据后,不会再次运行OnInitAsync。
相反,您必须使用OnParametersSetAsync,以便组件正确更新其参数这听起来像是
OnRemoved()
的问题,但您没有发布该问题。我还发现第一段代码很难破解,是不是Blazor?为什么()=>
这在这里有效吗?这段代码实际上有效,来自Dan Roth的Blazor工作室“Blazing Pizza”
<div class="stock-graph">
<p>
@companyData?.companyName
</p>
<div>
<TelerikButton class="delete-item" onclick="@OnRemoved">X</TelerikButton>
</div>
<TelerikChart ref="@chart">
<TelerikChartSeriesItems>
<TelerikChartSeries Type="ChartSeriesType.Line" Data="@data.StockValues"
Field="@nameof(StockValueData.StockValue)"
CategoryField="@nameof(StockValueData.Date)">
</TelerikChartSeries>
</TelerikChartSeriesItems>
<TelerikChartValueAxes>
<TelerikChartValueAxis Color="red"></TelerikChartValueAxis>
</TelerikChartValueAxes>
</TelerikChart>