4

試薬/再フレームとセマンティック ui を使用して Clojurescript で検索を実装しようとしています。Semantic-ui は、提案にレンダラーを使用します。このレンダラーのデフォルトは、画像、価格、タイトル、説明です。ジオコーディングに関する提案が必要なので、住所をリストしたいと思います。これは私が取得している戻りデータです。私は基本的に、提案に名前、都市、郵便番号を表示したいと考えています。

{:hits
 [{:osm_type "W",
   :name "Am Pfuhl",
   :osm_value "residential",
   :city "Berlin",
   :postcode "12209",
   :state "Berlin",
   :osm_key "highway",
   :extent [13.322584 52.4205878 13.3258975 52.419743],
   :point {:lng 13.3241429, :lat 52.4201622},
   :osm_id 103012039,
   :country "Deutschland"}
 :took 7}

私が書いたコードは、結果を表示しません。私は多くのことを試しましたが、コンポーネントの状態が変化するかどうか、結果が保存されるかどうかを確認する方法がわかりません。サブスクリプションは、直接呼び出すと結果を返します。

(def search (helper/component "Search"))
(def grid (helper/component "Grid"))
(def grid-row (helper/component "Grid" "Row"))

(defn on-search-change [event props]
  (rf/dispatch [:get-geocode (:value (js->clj props :keywordize-keys true))]))

(defn on-result-select [event props]
  (rf/dispatch [:geocode-selected]))

(defn get-geocode-results []
  @(rf/subscribe [:geocode-results]))

(defn result-renderer [& meh]
  (fn [meh]
    [:div (str meh)]))

(defn geocode-component []
  [:> grid
   [:> grid-row
    [:> search {:minCharacters 3
                :loading (when (:geocode @(rf/subscribe [:loading])) )
                :defaultValue "Berlin"
                :selectFirstResult true
                :onSearchChange on-search-change
                :onResultSelect on-result-select
                :resultRenderer result-renderer
                :results get-geocode-results}]]])

コンポーネントが結果を正しく保存しているかどうかを確認するにはどうすればよいですか? デバッグのためにすべての結果をレンダリングするだけのレンダラーを作成するにはどうすればよいですか?

よろしくお願いします!ティモ

編集: https://gist.github.com/TimoKramer/7e93758afb81dcad985fafccc613153aのソリューション

4

1 に答える 1