我正在用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時,它應該在控制檯中顯示爲可瀏覽的對象,通常會給出有關其中內容的一些線索。 –