Comments (7)
Yep, that's a bug. There are workarounds (like have the current color be a part of the id
attribute) but those are a hack. To be honest I'm kind of surprised this happens, this seems like a pretty basic test of the style handling code. Seems like the diffing code doesn't look at style changes when deciding to update an element?
Workaround:
import karax / [kbase, vdom, kdom, vstyles, karax, karaxdsl, jdict, jstrutils, jjson]
var s1 = style(StyleAttr.color, "blue")
proc createDom(data: RouterData): VNode =
result = buildHtml(tdiv):
p(key="test" & s1.getAttr(StyleAttr.color), style = s1):
text "change color!"
button:
text "Change Color"
proc onclick(ev: Event; n: VNode) =
echo "clicked"
s1.setAttr("color", "red")
setRenderer createDom
from karax.
Seems like the diffing code doesn't look at style changes when deciding to update an element?
I'm pretty sure that's what we're doing.
from karax.
That's why I'm surprised - I've literally seen that code, and had it work in many cases, but I'm not super sure what's going on here.
from karax.
Related Issues (20)
- Deprecate tree procs HOT 2
- `checked` doesn't get updated HOT 1
- StyleAttr.cssFloat should use the float css property name HOT 5
- Server-side render broken HOT 1
- cannot install karax via nimble in windows HOT 1
- Css variables HOT 1
- Strange edge case with onblur not causing an update HOT 1
- `loadScript` proc expects `body` to have id
- verbatim shouldn't create a wrapper div HOT 5
- bulma icon HOT 2
- htmx not getting data. HOT 2
- Abandoned project? HOT 3
- Update the package structure for Nimble HOT 1
- Please release a new version HOT 3
- There is no easy way to use custom tags (like <dialog>) HOT 4
- Wrong `app.js` directory (`karun`) HOT 1
- Delay in redrawing dom HOT 6
- buildHtml does not capture closure variables HOT 2
- Broken functionalities when karax used with grammarly or languagetool (and possibly other extensions) HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from karax.