处于Redux状态的函数
在react redux应用程序开发过程中,我遇到了一个特殊的用例: 我们的应用程序将一些函数作为资源(我们动态加载它们,然后将它们作为工厂来创建实例)。目前我把它们放在商店状态,效果很好。然而,将函数置于Redux状态似乎是一种反模式,这将破坏存储内容的持久化和再水化能力 因此,我尝试将函数从存储状态移出:我使用映射来保存函数,并将相应的键存储在状态中。问题是,通过这样做,我的状态到ui转换不再保留纯函数。在动态加载函数时,函数映射的内容会发生变化。在不同的时间段(例如,加载函数与加载函数),相同的存储状态将导致不同的UI处于Redux状态的函数,redux,Redux,在react redux应用程序开发过程中,我遇到了一个特殊的用例: 我们的应用程序将一些函数作为资源(我们动态加载它们,然后将它们作为工厂来创建实例)。目前我把它们放在商店状态,效果很好。然而,将函数置于Redux状态似乎是一种反模式,这将破坏存储内容的持久化和再水化能力 因此,我尝试将函数从存储状态移出:我使用映射来保存函数,并将相应的键存储在状态中。问题是,通过这样做,我的状态到ui转换不再保留纯函数。在动态加载函数时,函数映射的内容会发生变化。在不同的时间段(例如,加载函数与加载函数),
现在我觉得把函数放在redux系统之外的某个地方是不正确的。我需要一些关于如何放置这些函数的建议。正是由于您提到的原因,将函数存储在Redux状态可能不是一个好主意。 您可以在Redux状态下存储函数的加载状态。比如:
{
'loadedFunctions': ['func1', 'func2']
}
或者更复杂的事情:
{
'functionsStatus': {
'func1': {
loaded: false,
loading: true
}
}
}
在这种情况下,相同的Redux状态应该会产生相同的UI(若函数体不变)谢谢您的回复!因此,我应该将函数存储在其他位置,并按键组织它们,如
func1
,func2
?这意味着,当我想在组件中使用它们时,我必须从state获取key(例如func1
),并从“其他地方”找到真正的函数。然后从state检查此函数是否已加载,如果未加载,则显示加载程序或您想要的内容。在这种情况下,您将获得redux状态和呈现ui之间更纯粹的关系。但请记住,实际应用程序可能比todo列表更复杂,并且在任何地方保持纯洁性都不是最佳决策