Обернуть запрос 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
пункт или около того?