无法在OM中显示两个组件 [英] Unable to display two components in OM

查看:59
本文介绍了无法在OM中显示两个组件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试学习Om,并且遇到了一些我不了解的内容。我希望这段代码

I am attempting to learn Om, and have come across something I don't understand. I would expect this code

(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

However, it does not! The first div containing Test does not display. What am I misunderstanding?

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

Edit with the solution (pointed out by 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。

推荐答案

此处,FakeRainBrigand解释说,您的渲染函数必须返回单个可渲染对象。

As explained here and by FakeRainBrigand explained, your render function must return a single renderable.

这篇关于无法在OM中显示两个组件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆