【问题标题】:References in redux storeredux store 中的引用
【发布时间】:2016-11-12 17:37:35
【问题描述】:

是否有一种通用的方法可以在 redux 状态树中存储对不可序列化对象的可序列化引用?

简单的用例是从 reactjs 客户端上传一个 [相当大的] 文件到服务器。如果这种上传是由 redux 操作驱动的表单提交算法的一部分,我们需要在 store 中保留对文件的引用。最简单的方法是将文件的全部内容保存在存储中,但这对于大文件来说效率很低。

我正在考虑的一种方法是引入一个简单的 {stringkey:Blob} 映射并将stringkey 保留在状态树中。虽然在这种情况下,我们需要实现引用计数或其他方法来删除未使用的键。

有没有更好的办法?

【问题讨论】:

    标签: reactjs redux


    【解决方案1】:

    我会避免使用商店来存储大文件。它维护您的应用程序的状态,因此只需要引用文件即可(顺便说一下,按照数据库实践,保持存储规范化是一种很好的做法)。

    我会让上传文件的副作用远离减速器逻辑。您可以使用 redux 中的中间件来执行此操作,以便将文件作为操作的一部分上传;成功后,后续操作会使用后续渲染、应用程序状态等所需的任何内容更新存储。实际文件(如果需要)可以存储在其他位置,并且仅从您的存储中引用。

    【讨论】:

    • 我同意并且绝对不打算在商店中存储文件。现在尽量避免使用中间件,尽管这可能是其中一种选择。更多地研究从存储中引用不可序列化对象的正确(最好是通用)方法。尽管也许有人已经为此提供了通用插件解决方案
    • 好的;祝你的项目好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    相关资源
    最近更新 更多