Tôi đã cố gắng điều chỉnh example trong Biểu đồ Google này. Để re-frame
khuôn khổ, reagent
. Tôi muốn tạo biểu đồ thời gian thực, dựa trên đăng ký. Tôi đã thử nghiệm với một bộ đếm đơn giản = + - 1.Biểu đồ Google CLJS Clojure
Tôi gặp lỗi: Assert failed: Render must be a function, not nil (ifn? render-fun)
.
(defn draw-demo-chart
[d]
(let [[columns vectors options chart] (r/children d)
data (new js/google.visualization.DataTable)]
(doall ;gotta keep the doall on maps. lazy sequence...
(map (fn [[type name]]
(.addColumn data type name)) columns))
(.addRows data vectors)
(.draw chart data options)
(.load js/google "visualization" "1" (clj->js {:packages ["corechart" "orgchart" "calendar" "map" "geochart"]}))
(.setOnLoadCallback js/google draw-demo-chart)
))
(defn draw-demo-chart-container
[]
(let [count (re-frame/subscribe [:count])
columns (reaction [["date" "X"] ["number" "Y"]])
vectors (reaction (clj->js [[(new js/Date "07/11/14") 145] [(new js/Date "07/12/14") 15]
[(new js/Date "07/13/14") 23] [(new js/Date "07/14/14") 234]]))
options (reaction (clj->js {:title (str @count)}))
chart (reaction (new js/google.visualization.LineChart (.getElementById js/document "linechart"))) ]
(fn []
[draw-demo-graph @columns @vectors @options @chart])))
(def draw-demo-graph
(r/create-class {:reagent-render draw-demo-chart
:component-did-mount draw-demo-chart
:component-did-update draw-demo-chart}))
Nó không giống như nếu bạn có cách tiếp cận hoàn toàn đúng. Hướng dẫn này sẽ hướng dẫn bạn các tinh chỉnh cần thiết: https://github.com/Day8/re-frame/blob/master/docs/Using-Stateful-JS-Components.md –
Như tôi đã đăng .. hoạt động với d3. js, tôi chỉ muốn tạo phiên bản Google Chart. Tôi không biết vấn đề là gì, bởi vì ở phiên bản d3.js tôi đã lấy lại dữ liệu. Không có vấn đề gì. Tại trường hợp Google Chart .. không. Tôi đã trở lại từ nhiều diễn đàn liên kết .. chỉ cần tôi không hiểu tại sao không làm việc với Google Chart phương pháp này ... ở đâu là hình thức sai lầm phía tôi: s – RRR