4

私は 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含まれる Test は表示されません。私は何を誤解していますか?

ソリューションで編集します(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 になります。

4

1 に答える 1

2

hereおよび FakeRainBrigand で説明されているように、レンダリング関数は単一のレンダリング可能なものを返す必要があります。

于 2014-07-09T09:58:46.100 に答える