clojurescript – 无法在OM中显示两个组件

我试图学习Om,并且遇到了一些我不理解的东西.我希望这段代码

(defn search-page-view [app owner]
(reify
    om/IRender
    (render [_]
      (dom/div #js {:id "search-block"}
                  "Test")
      (dom/div #js {:id "results-block"}
               "Test2"))))
(om/root
 search-page-view app-state
  {:target (. js/document (getElementById "app"))})

导致这个HTML:

<div id="app>
  <div id="search-block">
    Test
  </div>
  <div id="results-block">
    Test2
  </div>
</div>

但是,它没有!包含Test的第一个div不显示.我有什么误会?

使用解决方案进行编辑(由FakeRainBrigand指出):

将代码更改为

(defn search-page-view [app owner]
  (reify
    om/IRender
    (render [_]
      (dom/div nil
               (dom/div #js {:id "search-block"}
                    "Test")
               (dom/div #js {:id "results-block"}
                    "Test2")))))

结果是预期的html.

最佳答案 正如
here和FakeRainBrigand所解释的那样,渲染函数必须返回一个可渲染的.

点赞