【问题标题】:Where is state stored in fluxor?状态存储在fluxor中的什么位置?
【发布时间】:2021-07-28 13:24:49
【问题描述】:

我是使用状态管理的新手。目前我正在开发一个 blazor 应用程序,我偶然发现了“fluxor”框架,它允许通过通量模式进行状态管理。 Fluxor 对我来说工作得很好,但是我似乎无法弄清楚页面状态的实际存储位置。 它是在缓存中,数据库还是其他一些奇特的方式?有没有办法让我在浏览器中查看存储的数据?

顺便说一下,我在应用程序的客户端使用了fluxor。

感谢您帮助我!

【问题讨论】:

  • 如果@Eric King 在附近,他可以回答这个问题——他在dev.to/mr_eking/… 写了一组文章

标签: c# blazor flux state-management fluxor


【解决方案1】:

状态保存在内存中。您可以通过使用 .UseReduxDevTools() 启用 Redux Devtools 来使用漂亮的 GUI 来查看状态,如下所示:

services.AddFluxor(o => o
    .ScanAssemblies(typeof(SomeType).Assembly)
    .UseReduxDevTools());

然后使用 redux devtools 插件:

https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd?hl=en

如果您希望将状态保存到本地存储或数据库,我创建了一个库来保存名为 Fluxor.Persist 的状态:

https://github.com/Tailslide/fluxor-persist

【讨论】:

  • 感谢您的回答!我以前看过 ReduxDevTools,但它们似乎对我不起作用。每当我将 .UseReduxDevTools() 添加到标准计数器状态示例时,计数器将不再计数。您知道可能存在什么问题吗?或者有没有办法在没有 ReduxDevTools 的情况下查看状态?浏览器内置的东西?
  • @Snoopy111 当您在 Fluxor 计数器样本中包含 .UseReduxDevTools 时,计数器停止变化?如果是这样,您能否提交一份关于 Fluxor 存储库的错误报告?
  • @Snoopy111 您可以从fluxor persist运行示例项目并将其持久保存到localstorage,然后您可以在浏览器中按F12并在localstorage中查看您的状态。我认为最好弄清楚为什么 .UseReduxDevTools() 对你不起作用,尽管它非常适合。
【解决方案2】:

IStore 被实例化为 Scoped 依赖项。归根结底,这是当前用户一切的根源。

当您注入 IStoreIState<Whatever> IDispatcherIActionSubscriber 时,它们最终将来自存储在该 IStore 实例中的状态。

如果你将 IStore 注入到某个东西中,你可以遍历它的 Features 属性,这是一个由名称键控的 IFeature 字典(名称来自 IFeature.GetName)。

IFeature 有一个object GetState() 方法,您可以使用它来获取状态。

这是访问状态的非通用方式。状态实际上是使用泛型存储的。

查看 ReduxDevTools 代码,您将看到如何使用 IStore.FeaturesGetState 获取所有状态(发送到 ReduxDevTools 浏览器插件)的示例

https://github.com/mrpmorris/Fluxor/blob/master/Source/Fluxor.Blazor.Web.ReduxDevTools/ReduxDevToolsMiddleware.cs#L67

OnJumpToState 方法中,它显示了我如何从浏览器插件恢复历史状态

https://github.com/mrpmorris/Fluxor/blob/master/Source/Fluxor.Blazor.Web.ReduxDevTools/ReduxDevToolsMiddleware.cs#L92

【讨论】:

    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    相关资源
    最近更新 更多