【问题标题】:Use of undeclared var from a namespace, but the var exists使用命名空间中未声明的 var,但该 var 存在
【发布时间】:2020-06-25 15:10:25
【问题描述】:

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

为什么会这样?

【问题讨论】:

    标签: namespaces clojurescript reitit


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2012-07-19
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多