如何解决试剂打ic中的:<>是什么?
我不理解以下代码中的标记“:” 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
被拼接到周围的列表中,而不是创建子元素。这样,与常规unquoted-splicing
运算符~@
相比,它类似于Clojure 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]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。