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

jwe*_*nga 6 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]])
Run Code Online (Sandbox Code Playgroud)

我的 events.cljs 有:

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

但我不断收到此错误:

core.cljs:3919 re-frame: no :event handler registers for: undefined

Erw*_*ers 2

你应该使用:events/update-dataviews.cljs. 指::的是当前命名空间 ( :views/update-data),并且该事件处理程序不是在那里定义的,而是在events命名空间中定义的。

另请注意,您可以使用:

(-> db
   (assoc :errors errors
          :data data)))
Run Code Online (Sandbox Code Playgroud)

给你省一个assoc