Я хотел бы добавить страницу, содержащую компонент Google Maps, в мое приложение Luminus, но я не могу понять, как это сделать. Я попытался следовать за Reagent google maps guide, но карта не будет отображаться.Добавление карты Google Maps на страницу Luminus Reagent?
Это код Clojurescript, что я пробовал:
(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})]]])
Я сильно подозреваю, что это не правильный путь, чтобы добавить теги script
.
Итак, мой вопрос: как добавить компонент Google Maps в приложение Lumius?
Это сработало, когда я также удалил все «div» векторы. Знаете ли вы, почему я не могу разместить '(r/create-class ..)' в '[: div ..]' vector? – Johan
@Johan Я думаю, что анализатор реагентов не может справиться с этим делом. Он ожидает только икоту или вызов другого компонента в квадратных скобках в шаблоне. –
На самом деле я думаю, что это должно сработать нормально, вам просто нужно поместить его в правильную форму икоты, например: '[: div [(r/create-class ...)]]' –