Является ли корректным в идеологии Redux диспатчить экшен постфактум?
Доброго дня.
Есть роутер (react-router). Сделал интеграцию роутинга с Redux, и получается так, что, дабы не ломать работу react-router, мне приходится диспатчить экшен ROUTE_CHANGE после того, как роут изменился. В коде я реализую это прослушиванием изменений истории браузера. Собственно, уже существующий react-router-redux работает так же, только менее гибок и не позволяет передавать параметры в state.
Далее, поскольку диспатч ROUTE_CHANGE реализован постфактум, очень удобно пользоваться нативными же средствами react-router, в частности, компонентом Redirect для того, чтобы в нужных местах делать редиректы, вместо dispatch(push('/route')).
Собственно, суть вопроса: допустимо ли это? Очередность событий получается следующей: смена роута > dispatch > обновление state. Насколько я знаю, redux предполагает несколько иную очередность: dispatch > смена роута в ответ на dispatch > обновление state.
А зачем вам понадобилась подобная интеграция роутинга с Redux? Я к тому, что многие люди пихают в стор все подряд, сами не понимая зачем.
смена роута > dispatch > обновление state
Непонятно зачем вообще в этой схеме dispatch > обновление state, почему бы не использовать dispatch(push('/somePlace')); раз уж в проекте используетеся react-router-redux?
Насколько я знаю, redux предполагает несколько иную очередность: dispatch > смена роута в ответ на dispatch > обновление state.
Непосредственно Redux предполагает только dispatch > обновление state. Остальное это middleware и сайд эффекты.
Мы в последних двух проектах вообще не использовали react-router-redux.