S
SolidJS16mo ago
Evert

How can this incredibly simple piece of code lead to "Maximum call stack size exceeded" ?

The entire code for this demo is here: https://playground.solidjs.com/anonymous/7ec72a47-1bb4-4e9f-bf1d-3103d3d2c2d0 I just adapted it from one of the tutorial pages. The culprit is one line, as far as I can tell: createEffect(() => [0, 359].includes(num()) && setDir(dir() * -1)); I just don't understand how that one line creates a stack overflow. Can anybody enlighten me and maybe offer an alternative? Any help would be much appreciates. 🙏
Solid Playground
Quickly discover what the solid compiler will generate from your JSX template
7 Replies
REEEEE
REEEEE16mo ago
You're reading and writing to dir, so everytime it gets set the effect reruns causing a loop just add untrack
[0, 359].includes(num()) && setDir(untrack(dir) * -1)
[0, 359].includes(num()) && setDir(untrack(dir) * -1)
Evert
Evert16mo ago
Ah, thanks! Yep, that did the job, thanks a lot @._rb Now how do I close this thread? 🤔
REEEEE
REEEEE16mo ago
not too sure, just add a check reaction to the post. should be enough
Evert
Evert16mo ago
!close
Evert
Evert16mo ago
@._rb sorry to bother you again, but since we're here. Do you also get this typescript error when you open my playground link? It doesn't make sense? Does it? Like, as far as I'm aware, all elements that can contain text have a color style attribute available to use, right?
Evert
Evert16mo ago
And I mean, it even works in the result pane. So TypeScript is just plain wrong here it seems.
REEEEE
REEEEE16mo ago
might just be an issue with the tsconfig of the playground I guess The usage is correct Actually, I think it is an issue with the playground because I sort of remember issues with the style property coming up previously
Want results from more Discord servers?
Add your server