Я делаю запрос из интерфейса clojurescript с cljs-ajax в API, который отвечает JSON, но кажется, что мне нужно что-то сделать, прежде чем я смогу использовать его в cljs.Как обрабатывать ответы cljs-ajax?
(defn all-pieces []
(GET "/art/pieces" {:handler ajax-success-handler}))
Когда я инициализировать мое приложение-состояние я задаю ключ :all-pieces (all-pieces)
Когда я перебрать :all-pieces
в компоненте я получаю ошибку Uncaught Error: [object Object] is not ISeqable
.
(defn pieces-component []
[:ul (for [piece (:all-pieces @app-state)]
[:li (art-piece piece)])])
Edited повторно Pratley:
ниже код в настоящее время приводит к состоянию 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 (: all-pieces @ app-state)) ... есть вероятность, когда вы назначаете результат, вы назначаете объект ответа вместо фактических данных? –
Я получаю '#object [Object [object Object]]'. Он застрял как объект JS, когда он должен быть картой cljs? – BWStearns
При использовании js/console.log он должен отображаться в виде просматриваемого объекта в консоли, что обычно дает некоторые подсказки о том, что в нем. –