Spectrum is now read-only. Learn more about the decision in our official announcement.


The Statecharts community on Spectrum is (along with spectrum) MOVING TO OTHER PLATFORMS: For statecharts discussions in general go to Statecharts Discussion on GitHub (link) or Gitter (link). For XState-specific questions, go to the XState discussion forum for Q&A or the Stately discord chat to chat.


Statecharts watercooler

March 7, 2019 at 5:55am
Show previous messages

December 9, 2020 at 7:59pm
Is anyone here using Statecharts to model HDL for FPGAs?
I'm trying to get a good design pattern going for hierarchical state machines in Hardware Description Language, but I'm new to Statecharts. Consequently, I'm trying to learn from two directions... How to implement Statechart concepts in HDL, and how to produce Statecharts which represent behavior in my existing HDL.
So a specific question of the second type... how would we use a state chart to represent a conditional action which is independent of a state transition? At present, my best notion would be to, within a state, say do/ if(condition){value = 0} Or similarly, on a state transition (changeState == true) / if (condition2 == true) {value = 0} It just starts to be a lot of pseudocode crammed into an action statement.
Does anyone know how to access machine context from within interpreter.onDone() method?
I'm struggling with it...

December 13, 2020 at 6:10pm
In SCXML, there is <if> for this. In XState, the equivalent is the choose(...) action creator, to give you ideas.
When using TS and you provide a context Interface, why does the machine allow it to be undefined?
Shouldn't it force the machine to be modelled according to the context interface if you provide one?

December 17, 2020 at 3:10pm
Are there other channels/servers for xstate? This seems fairly dead and I have some questions regarding TS

December 21, 2020 at 6:27am
what's the difference between spawning an actor and spawning a machine? by the looks of the docs they look identical? actors machine

December 21, 2020 at 4:12pm
From my understanding one can describe the behaviour of an actor using a callback, a promise, an observable or a machine. The first docs link you mention simply uses the machine case to describe the general concept.
Hey all ! I recently made my first statechart using xstate, This statechart isn't directly modelled in the UI layer, as it has two distinct UIs to drive simultaneously. I'm now trying to make it easier to understand in the visualizer by regrouping states that share transitions in compound states (clustering, as this page describes it. While doesn't make the distinction, xstate lets me choose between creating hierarchical state nodes and invoking other machines/actors. Do you have any guidelines about when to prefer one method over the other ? My guts tell me it's a modularisation/boundaries problem. Also having separate machines allows isolation of the context data. But feel free to correct me.
In addition to this, when creating compound states, I find myself adding more states that don't have a representation in the UI; like final child state nodes. How does a normal xstate + react app handle those to make no re-render happens ?

December 22, 2020 at 1:23am
For those passing by, I think I'm finding parts of answers to my questions in this thread about decoupling statecharts and views :

Coupling between view and statechart


January 7, 2021 at 9:04pm
Why does /vue no longer have a context exposed from useMachine?
(in Vue3)

January 19, 2021 at 1:35pm
There is now an XState Discord:

April 18, 2021 at 9:41pm
And so it begins:

Do not join this community! (We've moved.)