我应该在redux中存储静态配置吗?

时间:2016-10-21 14:23:21

标签: reactjs redux

我正在构建一个react / redux Web应用程序,我想知道我应该从哪里得到永不改变的静态配置信息(当webapp正在运行时)。

This is the data in question

此信息用于应用程序的不同部分,例如:有一个表单,您可以从主数组中选择任何项目,并通过这样做填充另一个具有所选数组属性的选择字段:

<select>Choose an exchange</select>
<select>Choose a market (that is available in the above exchange)</select>

这样可以很好地适应某些reducer逻辑(根据第一个state.markets中选择的内容设置select),但它应该根据树中的其他状态进行过滤,还是只加载reducer里面的闭包中的数据(保持状态树之外的所有内容不相关)?或者这根本不是状态(并且容器应该加载此文件并根据单个state.exchange状态道具进行过滤)?

填写表单时,结果将按以下方式处理:

{exchange: 'a', market: 'b'}

那也是状态(我猜?)

1 个答案:

答案 0 :(得分:4)

我对redux的理解是,我们应该只在store中存储有状态数据,即可能会发生变化的数据。根据定义,静态数据没有状态,因此不需要像这样跟踪。

因此,我通常有一个/common/app-const.js文件,我存储这些类型的静态对象。在您的情况下,您只需将exchange.js中的所有静态数据移动到一个公共文件中,然后import将其放在您需要的任何位置。

<强> /common/app-const.js

export default {
    markets: [
          { pair: ['USD', 'BTC'], minimalOrder: { amount: 0.01, unit: 'asset' } },
          { pair: ['RUR', 'BTC'], minimalOrder: { amount: 0.01, unit: 'asset' } },
          { pair: ['EUR', 'BTC'], minimalOrder: { amount: 0.01, unit: 'asset' } },
          ...
}

我理解您的方法,通过connect()通过react-redux简单地注入您的数据会很好,但是对于仅import静态数据来说更简单一点来自需要的文件。