[英]om/react: manipulate elements outside the render target element
我使用om作為clojurescript react接口。
我猜這與om和反應有關的一個問題:
在我的html主體中,我有一個id為“ app”的div,用於om / react作為渲染目標。
在此元素之外更改屬性的首選方法是。 更具體地說,我需要為主體設置一些樣式表。
現在,更多特定於clojure的內容:
如何將多個鍵值對設置為javascript對象。 (例如document.body.style)
我正在使用這個:
(doseq [[k v] {"backgroundColor" "red" "overflow" "hidden" ...}]
(aset js/document.body.style k v))
使用underscore.js有一個很好的方法:
_.extend(document.body.style, {"backgroundColor": "red" "overflow": "hidden"})
好吧 ,但這是這里的問題。 也許並不需要,因為有一種特殊的om / react方法。
更好的方法是簡單地使用包含所有鍵值對的javascript對象設置主體樣式:
(set! (.. js/document -body -style) #js {:backgroundColor "red" :overflow "hidden"})
Naomi提供的解決方案很棒,但是它使用了內聯CSS的錯誤做法。 我不用在代碼中設置實際的CSS樣式,而是將一個類設置為所需的html對象,然后在樣式表中定義該類的CSS屬性。
例如:
(set! (.. js/document -body -className) "my-class")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.