Clojure 在重新帧应用程序中未呈现任何视图

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

下面是一个简单的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
  :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,不久之后就被修复了。我正在使用最新的一个。问题已经解决了,我有一对额外的括号导致了问题。谢谢