Ковыряю Redux, написал небольшой проектик (1000 строк), появилось парочка вопросов.
1)
Есть св-во state'а - `type`, которое может иметь значение `typeA`, `typeB` или `typeC` (радиокнопки), а так-же объект с дефолтными данными вида:
{
typeA: {//... defaults},
typeB: {//... defaults},
typeC: {//... defaults}
}
Раньше этот объект с дефолтными данными был частью state'а, а сейчас я его вынес в отдельный класс с методом `getDefaultByType(type)`, и везде, где нужно получить дефолтные данные для текущего `type`, я вызываю этот метод.
Правилен ли такой подход с дефолтными данными?
2)
В state есть некоторые св-ва, которые зависят от св-ва `type`. Например св-во `price`.
Для каждого `type` есть массив доступных цен. При инициализации 1-я цена из массива помещается в св-во `price` (далее она уже контроллируется выпадающим списком).
`type` прописан в `initialState`, но что мне делать с `price`, который зависит от `type`?
- прописать вручную правильный `price` для `type` в `initialState`, при том, что если вдруг `type` при инициализации изменится, нужно будет изменить и `price`?
- или же сделать side effect, который будет срабатывать при инициализации state'а (ngrx, при инициализации state'а выполняется специальный экшн, который side effect и ловит) и на основе текущего `type` выбирать правильный `price`?
Сейчас я использую 2-й вариант, side effect при инициализации state'а берет значение св-ва `type` и выполняет 5 экшнов на заполнение зависящих от `type` св-в state'а.