4

我有简单的新人发光试剂应用。我定义了一些组件定义:

(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")))

除了原子状态切换通知外,一切正常。在成功获取资源时,我看到alert了假定的消息,但页面的相应区域没有切换。

Chrome 调试器显示在 atom 切换时 atom 的watches属性为空 ( null),因此不会触发任何通知。

我的方法可能有什么问题?

4

1 回答 1

4

您应该使用reagent.core/atom而不是常规 Clojure atom。将此添加到您的命名空间:require

[reagent.core :as reagent :refer [atom]]
于 2015-01-19T22:18:58.073 回答