首页 > 解决方案 > Cljs 重新框架未按预期显示元素

问题描述

我正在尝试使用 Cljs 重新框架,其中我试图在 UI 中显示一个具有以下功能的单元格,

(defn cell
      [{:keys [id value on-change]}]
      [(r/adapt-react-class Box) {:key              id
                                  :type             :number
                                  :ml               2
                                  :content-editable (nil? value)
                                  :on-change        on-change
                                  :border           "2px solid #10AF34"
                                  :width            "30px"
                                  :height           "30px"
                                  :align            "center"}
       value])

当我尝试直接从正在调用以进行渲染的方法调用该方法时,它可以工作

(defn app
      []
      (cell {:id        "1-1"
             :value     nil
             :on-change #(js/alert "in cell 1 1")}))

然而,当我尝试将它包装在另一个方法中并调用时,它不起作用

(defn grid
      [data]
      (cell {:id        "1-1"
             :value     1
             :on-change #(js/alert "in cell 1 1")}))

(defn app
      []
      (grid (generate-data)))

如果有人想尝试一下,grid/cell可以在此处使用,并且可以在此处使用应用程序/渲染功能。

标签: clojurescriptre-frame

解决方案


您的问题可能源于使用 [(r/adapt-react-class Box) …]- 我不确定它是否有问题,但我要么使用它def的结果adapt-react-class并重用它,要么使用[:> Box …]语法。


推荐阅读