我试图学习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所解释的那样,渲染函数必须返回一个可渲染的.