Обернуть запрос Datascript в функцию?

Возникла, казалось бы, странная проблема с Datascript. По какой-то причине, когда я запускаю этот запрос, не завернув его в функцию, все работает. Но как только я помещаю его в функцию, он возвращает значение для:block/content для каждого объекта в базе данных. Я сбит с толку, потому что в прошлом у меня не возникало проблем с переносом других запросов Datascript. Кто-нибудь более опытный, чем я, с Datascript видит какие-либо проблемы?

;; Works fine and returns the correct value
(ds/q '[:find ?block-text
        :where
        [?id :block/id "l_63xa4m1"]
        [?id :block/content ?block-text]]
      @conn)

;; Returns every value for `:block/content` in the db
(defn content-find
  [id-passed]
  (ds/q '[:find ?block-text
          :where
          [?id :block/id ?id-passed]
          [?id :block/content ?block-text]]
        @conn))
(content-find "l_63xa4m1")

РЕДАКТИРОВАТЬ: решено здесь

1 ответ

Решение

В твоем defn версия, в которой вы используете предложение запроса [?id :block/id ?id-passed]. На самом деле это не используетid-passed параметр, который вы передали функции.

Я не уверен, как правильно передавать параметры. Я считаю, что есть:in пункт или около того?

Другие вопросы по тегам