使用命名空间中未声明的 var,但 var 存在



我在myapp.core(core.cljs(中有这个def:

(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 |            }

为什么会这样呢?

由于您使用的是全名myapp.core/router因此我假设您在ns形式中对该命名空间没有适当的要求。

您必须在该 ns 中具有(:require [myapp.core]),最好是带有:as别名并使用它。不允许使用全名"作弊"。

相关内容

最新更新