【问题标题】:Prevent state change updates防止状态更改更新
【发布时间】:2020-06-15 23:27:28
【问题描述】:

我在 Blazor 服务器端项目中使用实体框架,并且我有一个用户可以编辑数据的页面。我在编辑页面上有一个取消按钮,它更新实体框架上下文对象以取消其中的挂起更改,然后重定向到另一个页面。当用户点击取消时,您可以看到在重定向发生之前页面上的值变回了它们的原始值。所以这里发生了不必要的客户端更新,这会导致额外的网络流量。有没有办法告诉 Blazor 不要经历状态更改过程,这样我就可以防止这种情况发生?

【问题讨论】:

  • 您是否尝试在取消按钮事件中将布尔变量设置为 false,然后实现 ShouldRender 覆盖并返回该布尔值 - 这应该可以防止重新渲染组件。你需要确保 boolean 被初始化为 true 否则你的组件永远不会渲染
  • 提供(大纲)代码。
  • 感谢 Magoo 先生,虽然它比我希望的要多一些步骤,但它确实有效。如果你把你的评论改成回答的形式,我会接受的。

标签: c# blazor blazor-server-side


【解决方案1】:

如果你能显示一些代码并制作一个Minimal, Reproducible Example,那就太好了,但既然你没有,我会给你一个理论上的答案。

您可以做的是有一个“虚拟”类来保存用户客户端上的值,并有一个将由服务器端操作的类,因此您可以操作客户端中的数据何时应该更改或不更改.

当用户编辑数据时,它会编辑虚拟类,然后将值映射到正确的类,但是当用户点击取消时,那将不存在。

【讨论】:

  • 感谢您的想法,但对于像这样的小问题来说,这似乎有点矫枉过正。如果有这样的事情,我希望有一个单行命令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
  • 2019-09-30
  • 2021-06-02
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
相关资源
最近更新 更多