En JavaScript, un moyen courant de gérer les classes dynamiques consiste à utiliser la bibliothèque classnames.Manière idiomatique de gérer des classes dynamiques dans l'application Reagent ou Re-Frame
Je ne pouvais pas trouver des solutions alternatives pour ClojureScript, et il semble que la plupart des gens sont très bien à l'utilisation en ligne si les déclarations avec (str ...)
comme:
(str "location flex-column border-box" (if is-current " current"))
qui me semble fragile et fastidieux (voir la manipulation des espaces) .
Je pense que cette fonction fonctionne comme:
(class-names {
:location true
:flex-column true
:border-box true
:current is-current
})
; -> "location flex-column border-box"
; or "location flex-column border-box current"
Ou comme
(class-names "location" "flex-column" "border-box" {
:current is-current
})
Bien sûr, l'écriture telle fonction doit manuellement pas être difficile, mais je pensais que cela aurait dû être résolu en quelque sorte déjà.
jusqu'à présent, j'ai ce https://gist.github.com/YurySolovyov/834e9cd6258f36d6f333fd3d0806c238 –
et celui-ci https://github.com/YurySolovyov/class-names-cljs –