重新框架应用程序中没有呈现视图
No view is being rendered in re-frame app
这是我尝试根据重新框架 github 存储库中的现有示例项目创建的简单重新框架应用程序。但它只显示 html 文件中的内容。似乎没有事件被调度。谁能指出我做错了什么?谢谢
(ns simple.core
(:require [reagent.core :as reagent]
[re-frame.core :as rf]
[clojure.string :as str]))
(rf/reg-event-db
:rand
(fn [db [_ _]]
(assoc db :winner ( + 2 (rand-int 3)))))
(rf/reg-sub
:winner
(fn [db _]
(:winner db)))
(def participants ["Alice" "Bob" "Ellie"])
(defn winners-name
[idx]
(get participants idx))
(defn show-winner
[]
[:h1
(winners-name
(@(rf/subscribe [:winner])))])
(defn ui
[]
[:div
[:h1 "Lottery"]
[show-winner]])
(defn ^:export run
[]
(rf/dispatch-sync [:rand])
(reagent/render [ui]
(js/document.getElementById "app")))
:rand
处理程序大多数时候会生成 nil,因为您将生成的值加 2 而 participants
向量只有 3 个条目。
问题是由于 deref
周围的一对额外括号引起的。所以函数 winners-name
将其视为列表而不是整数。
(winners-name
(@(rf/subscribe [:winner]))
这是我尝试根据重新框架 github 存储库中的现有示例项目创建的简单重新框架应用程序。但它只显示 html 文件中的内容。似乎没有事件被调度。谁能指出我做错了什么?谢谢
(ns simple.core
(:require [reagent.core :as reagent]
[re-frame.core :as rf]
[clojure.string :as str]))
(rf/reg-event-db
:rand
(fn [db [_ _]]
(assoc db :winner ( + 2 (rand-int 3)))))
(rf/reg-sub
:winner
(fn [db _]
(:winner db)))
(def participants ["Alice" "Bob" "Ellie"])
(defn winners-name
[idx]
(get participants idx))
(defn show-winner
[]
[:h1
(winners-name
(@(rf/subscribe [:winner])))])
(defn ui
[]
[:div
[:h1 "Lottery"]
[show-winner]])
(defn ^:export run
[]
(rf/dispatch-sync [:rand])
(reagent/render [ui]
(js/document.getElementById "app")))
:rand
处理程序大多数时候会生成 nil,因为您将生成的值加 2 而 participants
向量只有 3 个条目。
问题是由于 deref
周围的一对额外括号引起的。所以函数 winners-name
将其视为列表而不是整数。
(winners-name
(@(rf/subscribe [:winner]))