【问题标题】:Blazor List Rendering Issue (JsInterop) - GIT LINK INCLUDED [closed]Blazor 列表渲染问题(JsInterop)-包​​括 GIT 链接 [关闭]
【发布时间】:2020-11-10 20:00:11
【问题描述】:

我已经为现有的 javascript 组件编写了一堆包装器,通常来自 JqWidgets 库。特别是在这种情况下,我的问题与 JqxWindow 组件有关。我将在下面粘贴所有相关代码,但首先我将解释发生了什么。

我有一个对象列表(在这种情况下是分配)。每当将分配添加到列表中时,它都会创建一个组件,我将其作为 JqxWindow 的包装器编写并打开一个新窗口。窗口的创建按预期工作。

问题:当我从列表中删除一个项目时,页面会重新渲染,并且总是从渲染角度删除列表中的最后一个项目。没有错误。我不是 100% 确定如何解决这个问题,这就是我在这里发帖的原因。

这里是 Git 的链接:https://github.com/TCrosmanDSI/JqWindowExample

【问题讨论】:

  • 请注意,该列表已正确修改,并且如果我要在没有 javascript 互操作的情况下进行渲染,则不会有任何问题。此问题与将列表修改为 javascript 时引发的事件有关。
  • 您是说当您从列表中删除时您不希望该项目从视图中消失?

标签: c# blazor lifecycle blazor-server-side asp.net-blazor


【解决方案1】:

使用@key 让渲染器知道哪些项目发生了变化

   <JqxWindowComponent @key="@windowId" Title="@windowId" InstanceId="@windowId" RemoveCallback="@DestroyWindow">

【讨论】:

  • 还没在家试试。我以为我试过了,但没有用……但如果有用,我会选择你的答案!泰!
  • 成功了!唯一的区别是它必须是小写的“@key="@windowId"”。我已将您的答案选为正确答案,谢谢!
  • 嗨,汤姆,要接受答案作为解决方案,请点击投票箭头下方的绿色勾号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 2020-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
相关资源
最近更新 更多