4

新しい ClojureScript とReagentアプリケーションでreact-beautiful-dndを使用しようとしています。ここのブログによると、ファイルを使用してファイルを含める必要があると書かれています。:foreign-libsproject.clj

以下のように構成しました

  :cljsbuild
  {:builds {:min
            {:source-paths ["src/cljs" "src/cljc" "env/prod/cljs"]
             :compiler
             {:output-to        "target/cljsbuild/public/js/app.js"
              :output-dir       "target/cljsbuild/public/js"
              :source-map       "target/cljsbuild/public/js/app.js.map"
              :optimizations :advanced
              :foreign-libs [{:file "src/cljs/react-beautiful-dnd/react-beautiful-dnd.js"}]
              :pretty-print  false}}
            :app
            {:source-paths ["src/cljs" "src/cljc" "env/dev/cljs"]
             :figwheel {:on-jsload "toka.core/mount-root"}
             :compiler
             {:main "toka.dev"
              :asset-path "/js/out"
              :output-to "target/cljsbuild/public/js/app.js"
              :output-dir "target/cljsbuild/public/js/out"
              :source-map true
              :optimizations :none
              :pretty-print  true}}



            }
   }

プロジェクトにコピーしたコンパイル済みファイルをhereから取得しました。これらのすべての変更の後、私はまだDragDropContextまたはDroppable自分のコンポーネントで使用できません。

私のコンポーネントでは、以下のように宣言しました

(def DragDropContext (reagent/adapt-react-class js/DragDropContext))
(def Droppable (reagent/adapt-react-class js/Droppable))

ここで私が間違っていることを誰かが理解するのを手伝ってもらえますか? 以下のようにエラーが発生しています

Uncaught ReferenceError: DragDropContext is not defined
    at core.cljs?rel=1508832729388:11
(anonymous) @ core.cljs?rel=1508832729388:11

注:パッケージがわからないため、provide属性を追加していません。また、コンポーネント ファイルでforeign-libs何かを行う必要があるかどうかもわかりません。:requirecore.cljs

4

2 に答える 2

1

追加する必要があり:providesます (たとえば、好きな ns 名を選択できますreact-beautiful-dnd)。その後require、それがロードされます。React に依存するため、次のように指定する必要がありますrequires(たとえばcljsjs.react、React を CLJSJS 依存関係として含めた場合)。

[{:file "src/cljs/react-beautiful-dnd/react-beautiful-dnd.js"
  :provides ["react-beautiful-dnd"]
  :requires ["cljsjs.react"]}]

そしてあなたの名前空間で:

(ns my.ns
  (:require
    [cljsjs.react]
    [react-beautiful-dnd]))
于 2017-10-24T09:12:21.213 に答える