重新框架:未注册事件处理程序

时间:2019-06-18 05:18:03

标签: clojurescript re-frame

我重新构图views.cljs具有:

(re-frame/dispatch [::re-graph/init
                    {:http-url "https://api.spacex.land/graphql"
                     :ws-url nil
                      :http-parameters {:with-credentials? false}}])

(re-frame/dispatch [::re-graph/query
                    "{ launches { id, mission_name } }"  ;; your graphql query
                    [::update-data]])

我的events.cljs具有:

(re-frame/reg-event-db
 ::update-data
 (fn [db [_ {:keys [data errors] :as payload}]]
   (-> db
     (assoc :errors errors)
     (assoc :data data))))

但是我一直收到此错误:

  

core.cljs:3919重新构建:否:未注册的事件处理程序:未定义

2 个答案:

答案 0 :(得分:0)

您应在:events/update-data中使用views.cljs::引用当前名称空间(:views/update-data),并且该事件处理程序未在其中定义,而是在events名称空间中定义。

还请注意,您可以使用:

(-> db
   (assoc :errors errors
          :data data)))

为您节省一个assoc

答案 1 :(得分:0)

解决方案是为查询变量添加git fetch --all

nil