无法在OM中显示两个组件

时间:2014-06-27 09:34:34

标签: clojurescript reactjs 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>

然而,它没有!第一个包含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。

1 个答案:

答案 0 :(得分:2)

正如解释here和FakeRainBrigand解释的那样,渲染函数必须返回单个可渲染。