私はクエリを頭で囲んでいます。たとえば、複数のテーブルビューを持つRoot
コンポーネントを作成したいとします。OmクエリとUIコンポジションを理解する
- 一つのアプローチではないクエリとテーブルビュー成分を有することであろう。 そして、あなたは小道具を介して使用する必要があるデータを渡すことができ、それはうまく動作します。
しかし、それは非常に単純なケースです。 UIツリーの下には、テーブルヘッダー、フッター、行、セルなどの複雑なUI構造があるため、TableView
のクエリを使用したい場合はおそらくTableView
となります。 this tutorialはアプローチを提案していますクエリを使用して:まだ
そして、これはまだ多少簡略化した例です。
が、今私が必要
(defmethod read :numbers/odd [_ _ _]
{:value (filter odd? (range 50))})
(defmethod read :numbers/even [_ _ _]
{:value (filter even? (range 50))})
もちろん、実際のアプリでデータがバックエンドから来るとOmは状態原子にそれを貼り付けます(通常通り):それでは、私が持っている場合としましょうこれらのいずれかをレンダリングすることができるクエリとTableView
成分(又はこの場合に任意の配列)を有します。だから、私は何とか状態原子にどこかに座っているデータを使用するTableView
コンポーネントを伝える必要がありを参照してください。 TableView
のクエリは「動的」である必要があります。したがって、異なるデータをレンダリングする複数のTableViews
を使用する可能性があります。
のは、我々はルートのためにこのようなものがあるだろうとしましょう:
-
:今、私はいくつかの質問を持って、私はOm.Nextインタフェースに
を省略brewityため
(defui Root
(query [_] [{:table/odd ,,,} {:table/even ,,,}])
(render
[this]
(let [{:keys [table/odd table/even]}]
(html [:div
[:div.odds (ui-table-view odd)]
[:div.evens (ui-table-view even)]]))))
を
Root
のクエリはどのように表示されますか?TableView
でパラメータ化されたクエリを使用する必要がありますか(ここでは、状態アトムのデータのキーを指定しています)?または、他にどのようにTableView
に:numbers/odd
を使用し、もう1つに:numbers/even
を使用するように指示できますか?TableView
でパラメータ化されたクエリを使用する場合、どのようにRoot
からTableView
にパラメータを渡すのですか?om/get-query
(サブクエリがパラメータ化されている場合)はどうすれば使用できますか?read
に必要ですか?良いアイデアのように聞こえません誰かが私にいくつかの並べ替えの例を表示することができます。どうもありがとう!。