Simple States And Composite States
XState allows you to build hierarchical state machines. A hierarchical state machine is one where there are substates nested under states.
States with nothing nested under them are simple states. States that have substates are composite states.
const machine = createMachine({
  // Starting State
  initial: "active",
  // Starting Context
  context: { count: 0 },
  // States
  states: {
    inactive: {
      always: { target: "active" },
    },
    active: {
      on: {
        SWITCH_COUNT_DIRECTION: {
          actions: ["logSwitch", "consoleLogSwitch"],
        },
        COUNT: {
          actions: "changeCount",
        },
      },
      initial: "increment",
      states: {
        increment: {
          on: {
            SWITCH_COUNT_DIRECTION: "decrement",
          },
        },
        decrement: {
          on: {
            SWITCH_COUNT_DIRECTION: "increment",
          },
        },
      },
    },
  },
});- The - inactivestate is a simple state. There is nothing nested under it.
- The - activestate is a composite state. There are two substates (- incrementand- decrement) nested under it.
- The - incrementand- decrementstates are both simple states. Nothing is nested under them.
Last updated
Was this helpful?