Использование необъявленной переменной var из пространства имен, но эта переменная существует

У меня есть это определение в myapp.core (core.cljs):

(def router 
    (reitit/router [["/" {:name :foo :view #'foo}]])
)

А в myapp.events (events.cljs) я использую его так:


{:dispatch [:common/navigate (reitit/match-by-path myapp.core/router "/browse")]}

Но получаю ошибку:


{:dispatch [:common/navigate (reitit/match-by-path myapp.core/router "/browse")]
--------------------------------------------------------------------^-----------
 Use of undeclared Var myapp.core/router
--------------------------------------------------------------------------------
1385 |            }

Почему это могло быть?

1 ответ

Поскольку вы используете полное имя myapp.core/router Я предполагаю, что у вас нет надлежащего требования для этого пространства имен в вашем ns форма.

Вы должны иметь (:require [myapp.core]) в этом нс, желательно с :asпсевдоним и используя это. Запрещается "жульничать" с использованием полного имени.

Другие вопросы по тегам