1

我在 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 |            }

为什么会这样?

4

1 回答 1

2

由于您使用的是全名myapp.core/router,我假设您在ns表单中没有对该名称空间的适当要求。

您必须(:require [myapp.core])在那个 ns 中,最好使用:as别名并使用它。不允许使用全名“作弊”。

于 2020-06-25T07:10:25.573 回答