У меня есть маршруты приложений, определенные в моем файле routes.cljs
в корне src/cljs/project/routes.cljs
.
(defn app-routes []
(secretary/set-config! :prefix "#")
(defroute
"/" []
(re-frame/dispatch [::events/set-active-panel :welcome-panel])))
; shortened for brevity
Инициализируется в core.cljs
; required [portfolio-app.events :as events]
(defn ^:export init []
(routes/app-routes)
(re-frame/dispatch-sync [::events/initialize-db])
(dev-setup)
(mount-root))
Отправляетсяна ::events/set-active-panel
в events.cljs
(re-frame/reg-event-db
::set-active-panel
(fn-traced [db [_ active-panel]]
(assoc db :active-panel active-panel)))
И имеет подписку :active-panel
в subs.cljs
(re-frame/reg-sub
::active-panel
(fn [db _]
(:active-panel db)))
Я подписываюсь на :active-panel
в моем layout.cljs
; required [portfolio-app.subs :as subs]
(defn panel []
(let [active-panel (re-frame/subscribe [::subs/active-panel])]
[:div
"which panel? " @active-panel]))
@active-panel
- это nil
при первом доступе к странице.Панель отправляется только при навигации по страницам.Я знаю, что это сработало изначально.Я не вижу в моих коммитах ничего, что могло бы его сломать.
Как заставить мой defroutes
срабатывать при загрузке страницы, а также при навигации по сайту?