clojurescript - 重新框架调度和订阅在 repl 和测试文件中不起作用
问题描述
我有一个重新设计的项目,并且我的事件、subs 和 db cljs 文件已被填充。我在我的项目中使用这三个并且效果很好。但是我创建了一个测试文件,并在其中调用了 subscribe 和 dispatch ,如下所示:
(deftest category-filter-test
(dispatch [:add-filter "cat"])
(is (= @(subscribe [:filters]) ["cat"]))
)
那是行不通的。我明白了
#object[Error Error: No protocol method IDeref.-deref defined for type undefined: ]
另一方面,如果我尝试在 shadow-cljs repl 中运行 subscribe,我会收到以下错误:
------ WARNING - :undeclared-ns ------------------------------------------------
Resource: :1:2
No such namespace: user, could not locate user.cljs, user.cljc, or JavaScript source providing "user"
--------------------------------------------------------------------------------
------ WARNING - :undeclared-var -----------------------------------------------
Resource: :1:2
Use of undeclared Var user/start
--------------------------------------------------------------------------------
ReferenceError: user is not defined
at eval (eval at shadow$cljs$devtools$client$browser$global_eval (http://localhost:3689/js/workspaces/cljs-runtime/shadow.cljs.devtools.client.browser.js), <anonymous>:1:1)
at eval (<anonymous>)
at Object.shadow$cljs$devtools$client$browser$global_eval [as global_eval] (http://localhost:3689/js/workspaces/cljs-runtime/shadow.cljs.devtools.client.browser.js:758:16)
at eval (http://localhost:3689/js/workspaces/cljs-runtime/shadow.cljs.devtools.client.browser.js:767:44)
at Object.shadow$cljs$devtools$client$env$repl_call [as repl_call] (http://localhost:3689/js/workspaces/cljs-runtime/shadow.cljs.devtools.client.env.js:167:108)
at Object.shadow$cljs$devtools$client$browser$repl_invoke [as repl_invoke] (http://localhost:3689/js/workspaces/cljs-runtime/shadow.cljs.devtools.client.browser.js:766:46)
at shadow$cljs$devtools$client$browser$handle_message (http://localhost:3689/js/workspaces/cljs-runtime/shadow.cljs.devtools.client.browser.js:844:37)
at eval (http://localhost:3689/js/workspaces/cljs-runtime/shadow.cljs.devtools.client.env.js:307:151)
at Object.shadow$cljs$devtools$client$env$process_next_BANG_ [as process_next_BANG_] (http://localhost:3689/js/workspaces/cljs-runtime/shadow.cljs.devtools.client.env.js:289:90)
at Object.shadow$cljs$devtools$client$env$process_ws_msg [as process_ws_msg] (http://localhost:3689/js/workspaces/cljs-runtime/shadow.cljs.devtools.client.env.js:310:40)
如何解决这两个错误?
解决方案
推荐阅读
- ios - ios中的联系人选择器以获取电话号码
- python - 在这种情况下,如何使 python 脚本运行得更快或使用多进程?
- javascript - (Javascript) 在使用 html 和 js 查找代码中的错误时需要帮助
- php - 免费或收费送货 - Woo commerce
- spring-data-mongodb - 使用最新的 Spring Data Mongo 反应时的 Mongo 转换异常
- text-to-speech - 如何为 Windows 8 构建 flite 测试项目?
- zapier - Zapier - 无效的 API 响应
- nix - 如何卸载 Nix
- r - 在 lapply 中按名称指定 col_type
- html - VBA - 在 Internet Explorer 中填充输入框不起作用