试剂打嗝中的 :<> 是什么?

What is :<> in reagent hiccup?

我不明白下面代码中的标签“:<>” clojure re-frame todomvc

(defn todo-app
  []
  [:<>
   [:section#todoapp
    [task-entry]
    (when (seq @(subscribe [:todos]))
      [task-list])
    [footer-controls]]
   [:footer#info
    [:p "Double-click to edit a todo"]]])

谁能帮我解决这个问题?

即创建 React 片段:

https://reactjs.org/docs/fragments.html

为之前的答案添加更多细节,fragment 拼接到周围列表而不是创建子元素。这样,它类似于Clojure中的unquoted-splicing运算符~@与常规unquote运算符~相比。一个例子:

(defn middle-seq       [] [    :d :e :f])
(defn middle-seq-frag  [] [:<> :d :e :f])

当用于创建 Reagent 组件时,我们看到了不同之处:

[:a :b :c (middle-seq)      :g :h :i]    ;=> [:a :b :c [:d :e :f] :g :h :i]
[:a :b :c (middle-seq-frag) :g :h :i]    ;=> [:a :b :c  :d :e :f  :g :h :i]

否则,您将不得不重组输入并使用 concat:

(vec
  (concat
    [:a :b :c]
    (middle-seq) 
    [:g :h :i] ))          ;=> [:a :b :c :d :e :f :g :h :i]