Clojure 在重新帧应用程序中未呈现任何视图
下面是一个简单的re-frame应用程序,我试图基于re-frame的github repo中的现有示例项目创建它。但它只显示html文件中的内容。似乎没有发送任何事件。有人能指出我做错了什么吗?谢谢Clojure 在重新帧应用程序中未呈现任何视图,clojure,clojurescript,re-frame,Clojure,Clojurescript,Re Frame,下面是一个简单的re-frame应用程序,我试图基于re-frame的github repo中的现有示例项目创建它。但它只显示html文件中的内容。似乎没有发送任何事件。有人能指出我做错了什么吗?谢谢 (ns simple.core (:require [reagent.core :as reagent] [re-frame.core :as rf] [clojure.string :as str])) (rf/reg-event-db
(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
处理程序将生成零次,因为您将2添加到生成的值中,参与者
向量只有3个条目。:rand
处理程序将生成零次,因为您将2添加到生成的值中,参与者
向量只有3个条目条目。该问题是由deref
事件周围的一对额外括号引起的。因此,函数winners name
将其视为一个列表,而不是一个整数
(winners-name
(@(rf/subscribe [:winner]))
该问题是由
deref
事物周围的一对额外括号引起的。因此,函数winners name
将其视为一个列表,而不是一个整数
(winners-name
(@(rf/subscribe [:winner]))
谢谢你发现了这个错误!它是在重构时引入的。我已经修复了,但是仍然没有什么不同。谢谢你发现了这个错误!它是在重构时引入的。我修正了,但仍然没有区别。你用的是什么版本的re-frame?在最新的.0版本中引入了一个bug,不久之后就被修复了。我正在使用最新的一个。问题已经解决了,我有一对额外的括号导致了问题。谢谢。你用的是什么版本的re-frame?在最新的.0版本中引入了一个bug,不久之后就被修复了。我正在使用最新的一个。问题已经解决了,我有一对额外的括号导致了问题。谢谢