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
You're reading and writing to
dir
, so everytime it gets set the effect reruns causing a loop
just add untrack
Ah, thanks!
Yep, that did the job, thanks a lot @._rb
Now how do I close this thread? 🤔
not too sure, just add a check reaction to the post. should be enough
!close
@._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?![](https://cdn.answeroverflow.com/1133467995419709600/image.png)
And I mean, it even works in the result pane. So TypeScript is just plain wrong here it seems.
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