gpt4 book ai didi

clojure - 在 ClojureScript 中不能要求 goog.fx.Dragger

转载 作者:行者123 更新时间:2023-12-04 16:56:09 25 4
gpt4 key购买 nike

我正在尝试构建一个使用 goog.fx.Dragger 使目标可拖动的小型 om 组件。我需要 goog.fx.Dragger :as dragger 像这样:

(ns om-draggable-me.core
(:require [om.core :as om :include-macros true]
[om.dom :as dom :include-macros true]
[goog.fx.Dragger :as dragger]))

当我使用它时:
(defn draggable [app owner]
(reify
om/IDidMount
(did-mount [_]
(let [target (om/get-node owner)]
(dragger. target)))
om/IRender
(render [_]
(dom/div #js {:id "drag-box" :className "drag-box"}))))

我收到编译器警告:

警告:在第 22 行 src/cljs/om_draggable_me/core.cljs 使用未声明的 Var om-draggable-me.core/dragger

看到其他使用 goog.fx.DragDrop 的例子,为什么这不起作用?

最佳答案

在您的 require表格,dragger是命名空间别名

[goog.fx.Dragger :as dragger]

旨在像这样使用:
dragger/your-var 
;; the same as goog.fx.Dragger/your-var

而在您的脚本中,它被用作好像它是一个 var:
(dragger. target)

而且,正如编译器所提示的那样,尚未定义此类 var。

你可以看到人们引用 clojure.string像这样:
(require '[clojure.string :as str])

不用担心与 clojure.core/str发生冲突功能:
(str/join ", " [1 2 3])
(str "hello" "world")

关于clojure - 在 ClojureScript 中不能要求 goog.fx.Dragger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26155304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com