Luminusアプリケーションにgoogle mapsコンポーネントを含むページを追加したいのですが、これを行う方法がわかりません。私はReagent google maps guideに従おうとしましたが、マップは表示されません。私は強く、これはscript
タグを追加するための正しい方法ではないと思われるLuminus ReagentページにGoogleマップを追加しますか?
(ns test.maps
(:require [reagent.core :as r]))
(defn home-render []
[:div {:style {:height "300px"}}])
(defn home-did-mount [this]
(let [map-canvas (r/dom-node this)
map-options (clj->js {"center" (google.maps.LatLng. -34.397, 150.644)
"zoom" 8})]
(js/google.maps.Map. map-canvas map-options)))
(defn map-page []
[:script {:type "text/javascript" :src "https://maps.googleapis.com/maps/api/js?key=<mykey>"}]
[:div.container
[:div.row
[:div.col-md-12
(r/create-class {:reagent-render home-render
:component-did-mount home-did-mount})]]])
:
これは私が試したClojurescriptコードです。
私の質問は、LumiusアプリケーションにGoogle Mapsコンポーネントを追加する方法です。
これは、すべての「div」ベクトルも削除したときに機能しました。なぜ '(r/create-class ..)'を '[:div ..]'ベクトルに置くことができないのか知っていますか? – Johan
@Johan Reagentパーサはこのケースを処理できないと思います。それはテンプレート内の角カッコ内の別のコンポーネントへのやりとりや呼び出しを期待するだけです。 –
実際に私はそれがうまくいくはずだと思うので、あなたはちょうどそのような適切なヒカップの形に置く必要があります: '[:div [(r/create-class ...)]]' –