首页 文章

在Redux状态下运行

提问于
浏览
2

在我的react-redux应用程序开发期间,我遇到了一个特殊的用例:

我们的应用程序将一些函数作为资源(我们动态加载它们,然后将它们用作工厂来创建实例) . 目前我把它们放在商店状态,效果很好 . 但是,将函数置于Redux状态似乎是一种反模式,这将破坏持久化和重新水化商店内容的能力 .

所以我尝试将函数从存储状态中移出:我使用映射来保存函数并将相应的密钥存储在状态中 . 问题是,通过这样做,我的状态到ui变换不再保留纯粹的功能 . 由于动态加载函数,函数映射的内容会发生变化 . 在不同的时期(例如加载VS函数的函数),相同的存储状态将导致不同的UI .

现在我觉得将函数放在redux系统的某个地方是不正确的 . 我需要一些关于将这些功能放在哪里的建议 .

1 回答

  • 0

    由于您提到的原因,在Redux状态下存储函数可能不是一个好主意 . 您可以在Redux状态下存储您的功能的加载状态 . 就像是:

    {
        'loadedFunctions': ['func1', 'func2']
    }
    

    或者更复杂的东西:

    {
        'functionsStatus': {
            'func1': {
                loaded: false,
                loading: true
            }
        }
    }
    

    在这种情况下,相同的Redux状态应该产生相同的UI(如果函数的主体没有改变)

相关问题