Clojure 如何将带有样式的HTML标记转换为Hiccup?反应问题

Clojure 如何将带有样式的HTML标记转换为Hiccup?反应问题,clojure,clojurescript,om,reagent,hiccup,Clojure,Clojurescript,Om,Reagent,Hiccup,我试图在一个试剂项目中将带有CSS的HTML解析为Hiccup。我用的是山核桃。当我用内联CSS解析HTML时,React抛出一个异常 (map as-hiccup (parse-fragment "<div style='color:red'>test</div>") ) 整个回购协议是有效的。我在core.cljs文件中将parsing from style标记添加到React的映射中: (ns hickory-stac

我试图在一个试剂项目中将带有CSS的HTML解析为Hiccup。我用的是山核桃。当我用内联CSS解析HTML时,React抛出一个异常

      (map 
         as-hiccup (parse-fragment "<div style='color:red'>test</div>")
      ) 
整个回购协议是有效的。我在
core.cljs
文件中将parsing from style标记添加到React的映射中:

(ns hickory-stack.core)
(:require[clojure.string:as s]
[clojure.walk:as w]
[试剂.核心:作为试剂:参考[原子]]
[hickory.core:as h]))
(启用控制台打印!)
(定义字符串->标记
“获取带syles的字符串并将其解析为属性和值标记”
[风格]
{:pre[(字符串?样式)]
:post[(偶数%)]]
(->(s/split style#“;”))
(mapcat#(s/split%#“:”))
(地图s/trim)
(defn代币->地图
“获取具有属性(偶数)及其值(奇数)的令牌序列
并返回{properties values}的映射
[代币]
{:pre[(偶数?(计数令牌))]
:post[(映射?)]]
(zipmap(保持索引#)(如果(偶数?%1)%2)标记)
(保留索引#(如果(奇数?%1)%2)标记)))
(定义样式->地图
“获取内联样式属性stirng并将其转换为React样式映射”
[风格]
(标记->映射(字符串->标记样式)))
(除打嗝->萨布罗诺
“将样式内联属性转换为React的样式映射”
[coll]
(w)邮政步行
(fn[x]
(如果(地图?x)
(在x[:style]style->map中更新)
x) )
科尔)
;; 测试数据
(def良好样式“颜色:红色;背景:黑色;字体样式:正常;字体大小:20px”)
(def)html片段
(str“test1test2”))
;; 翻译
(定义某些视图[]
[:div(hiccup->sablono
(第一个(映射h/as hiccup(h/parse fragment html fragment))))
(试剂/渲染组件[某些视图]
(.js/document(getElementById“app”))

您使用的是什么Hickory版本?我尝试了一个使用和Hickory 0.5.4的最低版本。你能发布浏览器异常、你的
项目.clj
和你的ns声明吗?我更新了问题,React不喜欢Hickory生成的样式标记:
冲突:样式属性需要从样式属性到值的映射,而不是字符串。
你能显示完整的代码吗?现在还不清楚你在喂什么来做出反应。您使用的是Om还是试剂?你在用萨布罗诺吗?我没有用萨布罗诺。我只是在用试剂和山核桃。正在尝试解析具有样式标记属性的HTML元素。
(ns main.views.job
  (:require [reagent.core :as reagent :refer [atom]]
                    [hickory.core :refer [as-hiccup parse parse-fragment]]))

(enable-console-print!)

(defn some-view [uid]
  [:div
     (map as-hiccup (parse-fragment "<div style='color:red'>test</div>"))   
  ])