Как предотвратить экранирование HTML в Clojure Reagent (как икота)

Я использую реагент ClojureScript. Который обеспечивает икотоподобную генерацию HTML.

У меня есть строка с HTML:

(def code "<b>hello world</b>")

При передаче Иккингу он будет экранирован, и я не получу полужирный текст на своей странице:

[:div code]

Как передать code в мой вывод HTML, чтобы он был интегрирован туда без экранирования?


person Witek    schedule 21.09.2016    source источник


Ответы (1)


Реагент

Используйте dangerouslysetInnerHTML нативный вызов React

[:div {:dangerouslySetInnerHTML {:__html code}}])

Также см:

(настоящий) Иккинг

Вам нужно использовать функцию raw-string из hiccup.utils:

[:div (raw-string code)]
person Madara's Ghost    schedule 21.09.2016
comment
Большое Вам спасибо. Но я использую реагент, который похож на икоту, но на самом деле не икает. Поэтому пространства имен hiccup.util нет :-( - person Witek; 21.09.2016
comment
У тебя нет. Я изменил свой вопрос. Извини ;-) - person Witek; 21.09.2016
comment
@Witek Все в порядке, в следующий раз, если вы заметили, что у вас есть редактирование, которое сделает существующие ответы недействительными, задайте новый вопрос со ссылкой на старый и объясните разницу. - person Madara's Ghost; 21.09.2016
comment
Похоже, что в пространстве имен hiccup.util больше нет функции raw-string: weavejester.github.io /hiccup/hiccup.util.html Редактировать: похоже, это часть v2: cljdoc.org/d/hiccup/hiccup/2.0.0-alpha2/api/ - person Scott; 28.08.2020