我正在用cljs-ajax从clojurescript前端发出一个请求到一个用JSON响应的API,但似乎我需要在它可以在cljs中使用它之前做一些事情。如何处理cljs-ajax响应?
(defn all-pieces []
(GET "/art/pieces" {:handler ajax-success-handler}))
当我初始化我的应用程序状态我分配的关键:all-pieces (all-pieces)
当我走在一个组件出现错误Uncaught Error: [object Object] is not ISeqable
遍历:all-pieces
。
(defn pieces-component []
[:ul (for [piece (:all-pieces @app-state)]
[:li (art-piece piece)])])
编辑整理普拉特利:
现在下面的代码导致的all-pieces
是{}
状态,看到什么问题?
;; -------------------------
;; Remote Data
(defn all-pieces [handler]
(GET "/art/pieces" {:handler handler}))
;; -------------------------
;; State Management
(def app-state (atom
{:doc {}
:saved? false
:page-state {}
:all-pieces {}}))
(defn set-pieces-fresh []
(all-pieces (fn [pcs] swap! app-state assoc :all-pieces pcs)))
尝试做一个(JS /的console.log(:全片@应用程序状态))......当你分配机会结果,你是在分配响应对象而不是实际的数据? –
我得到'#object [Object [object Object]]'。它作为一个JS对象时,它应该是一个cljs地图? – BWStearns
当使用js/console.log时,它应该在控制台中显示为可浏览的对象,通常会给出有关其中内容的一些线索。 –