我正在构建一个react/redux Web应用程序,并且想知道我应该在哪里放置永远不会改变的静态配置信息(尽管Web应用程序正在运行)。

This is the data in question

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

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

这将非常适合某些 reducer 逻辑(根据第一个 select 中选择的内容设置 state.markets),但它是否应该根据其他条件进行过滤状态树中,或者只是将数据加载到 reducer 内的闭包中(将所有不相关的内容保留在状态树之外)?或者这根本不是状态(容器是否应该加载此文件并基于单个 state.exchange 状态属性进行过滤)?

填写表格后,结果将按如下方式处理:

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

所以这也是状态(我猜?)

请您参考如下方法:

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

因此,我通常有一个 /common/app-const.js 文件,用于存储这些类型的静态对象。对于您的情况,您只需将所有静态数据从 exchange.js 移至一个通用文件中,然后在需要的地方导入即可。

/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' } }, 
          ... 
} 

我理解你的方法,但是,通过 react-redux 通过 connect() 简单地注入(inject)你的数据会很好,但是它更简单一些只需从需要的文件中导入静态数据。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!