【问题标题】:State is wiped out when page is refresh in blazor with fluxor使用fluxor在blazor中刷新页面时状态被清除
【发布时间】:2022-04-11 05:33:02
【问题描述】:

我不确定如何处理这种行为,这是我拥有的功能:

public class HolderFeature : Feature<HolderState>
    {
        public override string GetName() => "HolderState";
        protected override HolderState GetInitialState() => new(holder: new ProductHolder(), persons: string.Empty);        
    }

而且,在刷新页面(按 f5)之前一切正常,状态被清除,我有这个来处理错误:

 protected override void OnInitialized()
        {
            if (HolderState.Value.QuotedProduct.Quotes != null)
            {
                //do the logic
            }
            else
            {
              //show error screen
                PressedF5 = true;
            }
        }

我期望的是,即使页面被刷新,它也不应该清除状态。我该怎么做?

【问题讨论】:

  • 问题是什么?问题是什么?当您刷新时,预计状态会被清除 - 这是您的意思吗?
  • @KirkWoll 你是对的!我编辑了这篇文章,希望这次可以理解。
  • 要在刷新时保持状态,您需要将状态存储在某处——服务器支持的数据库或浏览器本地存储。对于一个 SO 问题来说,这个话题太大了,但 this tutorial 似乎是你所追求的。
  • 我想用本地存储或 indexdb 的东西会是答案!谢谢,如果您发布您之前的帖子,我会将其标记为答案。
  • 一个与库相关的问题,用于将 Fluxor 数据持久保存到 F5 上的 DB 或 localStorage。见:stackoverflow.com/a/67421834/943435

标签: c# blazor state-management fluxor


【解决方案1】:

状态存储在内存中。当您刷新页面时,您正在卸载它并从头开始,因此如果没有将其保留在某个地方,所有内存都会丢失。

【讨论】:

    猜你喜欢
    • 2020-09-21
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 2014-06-01
    • 2012-12-11
    相关资源
    最近更新 更多