2016-10-21 5 views
5

Я создаю веб-приложение «реакция/редукция», и мне интересно, где мне нужна статическая информация о конфигурации, которая никогда не изменяется (пока веб-приложение работает в любом случае).Должен ли я хранить статическую конфигурацию в redux?

This is the data in question

Эта информация используется в различных частях приложения, например: есть форма, где вы можете выбрать любой элемент из основного массива, и тем самым заполнение другого выбора поля с свойства выбранного массива:

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

Это поддается хорошо в какой-то редуктор логики (который устанавливает state.markets основанный на том, что выбран в первом select), но она должна фильтр на основе другого государства в дереве, или просто загрузите данные в крышку внутри редуктора (соблюдая все g, не связанного вне государственного дерева)? Или это не состояние вообще (и должен ли контейнер загружать этот файл и фильтровать на основе одного state.exchange state prop)?

Когда форма заполнена в результате будет обрабатываться как:

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

Так что бы состояние тоже (? Я думаю)

+0

Если эти данные, которые вы опубликовали, никогда не меняются, я просто оставил бы его как модуль так, как вы его используете. то вы можете импортировать его везде, где вам нужно прочитать любое из этих полей. – azium

ответ

0

Мое понимание redux является то, что мы должны хранить только stateful данные в 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 статические данные из файла, если необходимо.

+0

Слово в вашем последнем абзаце, в то время как это более «прямолинейно», оператор импорта в статический файл данных создает очень жесткую зависимость от этого файла. Redux обеспечивает форму инъекции зависимостей в этом отношении. – Patrick

Смежные вопросы