2016-08-23 38 views
0

在使用React Redux框架编写工程应用程序时,我们遇到了一个产品数据库的问题,该数据库具有处理其负载能力和其他属性的函数的数据库。我知道将功能加载到商店并从减速器中的其他位置检索功能会打破纯度并使减速器难以测试成为一个好主意。以数学公式为函数的Redux商店

他们的任何React Redux方式为减速器提供产品功能数据库作为参数或类似的数据,而无需将它们放入存储区并且不破坏纯度?

编辑:

每款产品都有可能例如描述插口扩展和负载能力之间的关系的功能。这种关系通常是非线性的,并且有一个图表,它将把容量与其可扩展范围联系起来。我们已经使用曲线拟合工具将这些图表与其范围内的函数进行匹配。我希望能够在减速器中使用这些功能,以便当有人选择产品和扩展时,我们可以获得容量,并检查其与状态中其他计算负载的适用性。

+0

你能描述一下你的用例的细节吗?如果你有一些通用的帮助函数,我认为它是一种“单一来源”。但是,如果每个数据库记录都有独特的功能,那不是一个好主意。 – darkbaby123

回答

1

的一点想法:

+0

当前考虑选项2.我最初犹豫不决,因为它会使reducer不纯,但我后来意识到,如果我将功能数据库curry到reducer中,那么它仍然是可测试的,而不是不纯?像'createStore(reducerWithDatabase(productDatabase))'''。 'var reducerWithDatabase =(productDatabase)=>(state,action)=> state' – Adam

+0

这是一种方法,我想。也就是说,使用reducer函数将其他函数作为过程的一部分调用并不会使其变得“不纯”,只要这些函数本身是纯粹的并且没有副作用。数学函数看起来很可能是纯函数,所以叫他们做工作应该没问题。 – markerikson