Не самое красивое решение, но большинство реализаций универсальности работает именно так: состояние стора складывается в сериализорванном виде в глобальную переменную, и перед рендерингом из этой переменной наполняется стор и дальше растягивается по компонентам. Второй аспект это динамические данные которые нужно получить уже при рендеринге, в таком случае распространенное решение это сначала выполнить все запросы на получение таких данных на основании состояния роутера, а по резолву выполнить первоначальный рендеринг. Решение не идеальное со своими подводными камнями, но вполне работоспособное .