Где согласно концепции redux-а правильно было бы хранить объект — источник данных для расчета state?
Приложение мое работает следующим образом, при загрузки страницы, я, посредством isomorphic-fetch и redux-thunk загружаю json файл с большим объемом статистических данных (пока он грузится, сообщаю об этом пользователю прелоадером). Функцию загрузки вызываю в методе componetDidMount единственного умного компонента в приложении. После загрузки, отображается начальное состояние - пользователь взаимодействует со страницей, выбирая определенные опции - в зависимости от выбранных опций, объект с полученными статистическими данными подвергается не хилому процессингу (различные map, filter, groupBy, reduce и т.п.), в результате в state передается лишь малая часть от изначального объекта. И вот я подумал, а где правильно было бы хранить этот объект. Держать его в state, наверное, не правильно. Получается я должен редьюсере (reducers/myReducer.js) объявить объект let = myStats = {}; в функции, которая обрабатывает action загрузки файла со статистическим данными присвоить полученный из файла и распарсенный json этом объекту. И во всех остальных обработчиках экшенов (которые вызываются в зависимости от действий пользователя) уже обращаться к этом объекту для расчета текущего стэйта. Я правильно рассуждаю? Если нет, поправьте меня.
Согласно туториалу "A store holds the whole state tree of your application.
The only way to change the state inside it is to dispatch an action on it." Так что логично состояние хранить и изменять в store
Лично я бы так же делал. Единственное - в стэйт компонента не нужно загружать обработанные данные. Мне кажется более верно в стэйте компонента хранить текущий выбор пользователя, а данные генерить на лету из редуцера. Или, если генерить долго, то можно сделать еще редуцеров которые будут хранить результаты вычислений для ускорения расчетов.