Где изменить данные для реагирующего компонента в редуксе?
У меня есть массив отчетов с датами, полученными через приставку, и я хочу сгруппировать их по месяцам, а затем по таким дням:
January 2017 (header)
15th report 1
report 2 (also the 15th)
February 2018
1st report 3
4th report 4
Я думаю, что я должен отсортировать отчеты в новый массив / объект с месяцем, а затем с днями, чтобы я мог передать их компонентам реагирования без необходимости выяснения, есть ли что-то в одном месяце или дне того же года. Или я должен просто отсортировать, а затем оценить его на уровне компонентов?
Я думал о сортировке и создании нового массива в mapStateToProps компонента контейнера для всего этого. Это правильное место, чтобы сделать это?
1 ответ
Я думаю mapStateToProps
лучшее место для этого.
Ранее (в редукторе) нарушается правило отсутствия побочных эффектов. Позже (в компоненте) должно быть в componentWillReceiveProps
метод жизненного цикла - или у вас может возникнуть соблазн поместить его в render
или метод, вызванный render
(что является наихудшим сценарием!).
Исключение может быть, если эти данные используются несколькими компонентами. В этом случае вы можете переосмыслить структуру данных редуктора.