我有一个涉及 luminus 和 reagent 应用的简单入门程序。 我定义了一些组件定义:
(def md-vals (atom nil))
(defn markdown [url]
(GET
(str js/context url)
{:handler
(fn [response]
(swap! md-vals assoc url response)
(js/alert (str "loaded\n" (subs response 1 100))))})
(fn [] [:p (get @md-vals url "loading...")]))
它作为页面组件的使用方式:
(defn docs [] [markdown "/md/docs.md"])
最后是页面绑定:
(defn init! []
...
(render-component (docs) (.getElementById js.document "docs")))
除了原子状态切换通知之外,其他都正常。在成功获取资源时,我看到了预期的“警报”消息,但页面对应的区域没有切换。
Chrome调试器显示,在原子切换的时候,原子的“watches”属性为空(null),因此没有触发任何通知。
我的做法可能有什么问题?
reagent.core/atom
还是普通的 Clojureatom
?请发布你的命名空间声明。 - sbensu