簡體   English   中英

語法錯誤宏展開 clojure.core/let

[英]Syntax error macroexpanding clojure.core/let

我正在使用 shadowcljs 並且我正在嘗試使用基於示例代碼的代碼在服務器上創建一個突變。 我有一個非常小的突變,總是拋出這個錯誤。 這是為什么?

[jchat.server-components.pathom-wrappers :refer [defmutation defresolver]]

(defmutation reset-users-db
             "Removes all users"
             []
             {::pc/output [:message]}
             {:message "ok"})

語法錯誤宏擴展 clojure.core/let (user.clj:47:1)。 nil - 失敗:簡單符號? at: [:bindings :form :local-symbol] 規范: :clojure.core.specs.alpha/local-name nil - 失敗:向量? at: [:bindings :form :seq-destructure] 規范: :clojure.core.specs.alpha/seq-binding-form nil - 失敗:映射? at: [:bindings :form :map-destructure] 規范: :clojure.core.specs.alpha/map-bindings nil - 失敗:映射? at: [:bindings :form :map-destructure] 規范: :clojure.core.specs.alpha/map-special-binding

第 47 行是defmutation起始行。

使用macroexpand

(macroexpand '(defmutation reset-users-db
                           "Removes all users"
                           []
                           {::pc/output [:message]}
                           {:message "ok"}))
=>
(do
 (com.wsscode.pathom.connect/defmutation
  reset-users-db
  [env__26870__auto__ params__26871__auto__]
  #:com.wsscode.pathom.connect{:output [:message]}
  (clojure.core/let [nil env__26870__auto__ nil params__26871__auto__] {:message "ok"}))
 (jchat.server-components.pathom-wrappers/register! reset-users-db))

感謝 Carcigenicate 幫助我調試和理解調試,我們發現突變需要 2 參數。

如:

(defmutation reset-users-db
             "Removes all users"
             [env params]
             {::pc/output [:message]}
             (println "test"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM