我正在构建一个react/redux web应用程序,我想知道我应该从哪里得到永远不会改变的静态配置信息(当webapp正在运行时).
此信息用于应用程序的不同部分,例如:有一个表单,您可以从主数组中选择任何项目,并通过这样做填充另一个具有所选数组属性的选择字段:
<select>Choose an exchange</select>
<select>Choose a market (that is available in the above exchange)</select>
Run Code Online (Sandbox Code Playgroud)
这将很好地适用于某些reducer逻辑(state.markets根据第一个中选择的内容进行设置select),但是它应该根据树中的其他状态进行过滤,还是只将数据加载到reducer内的闭包中(保持所有内容不相关)国家树)?或者这根本不是状态(并且容器应该加载此文件并根据单个state.exchange状态道具过滤)?
填写表单时,结果将被处理为:
{exchange: 'a', market: 'b'}
Run Code Online (Sandbox Code Playgroud)
所以这也是状态(我猜?)
我的理解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' } },
...
}
Run Code Online (Sandbox Code Playgroud)
但是,我理解您的方法,通过connect()via简单地注入数据会很好react-redux,但是import在需要的地方仅从文件中获取静态数据会更直接一些。