2017-07-02 6 views
0

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à.

+0

jusqu'à présent, j'ai ce https://gist.github.com/YurySolovyov/834e9cd6258f36d6f333fd3d0806c238 –

+0

et celui-ci https://github.com/YurySolovyov/class-names-cljs –

Répondre