如何在 xstate 中重用状态转换?

Pau*_*erg 4 javascript state state-management xstate

取以下有限状态机:

const machine = Machine({
  initial: "foo",
  states: {
    foo: {
      on: {
        BAZ: "baz",
        QUX: "qux",
      },
    },
    bar: {
      on: {
        BAZ: "baz",
        QUX: "qux",
      },
    },
    baz: {
      on: {
        FOO: "foo",
        BAR: "bar",
      },
    },
    qux: {
      on: {
        FOO: "foo",
        BAR: "bar",
      },
    },
  },
});
Run Code Online (Sandbox Code Playgroud)

请注意,有两组重复的状态转换:

on: {
  FOO: "foo",
  bar: "bar",
}
Run Code Online (Sandbox Code Playgroud)
on: {
  BAZ: "baz",
  QUX: "qux",
}
Run Code Online (Sandbox Code Playgroud)

除了在 Machine 定义之外将状态转换定义为好的 ol' JavaScript 对象,是否有一种特殊的方法来做到这一点?

Dav*_*hid 6

除了将状态转换定义为 Machine 定义之外的好 ol' JavaScript 对象

你是在自问自答!您已经知道如何对这些数据进行重复数据删除,因此将它们定义为外部对象并在机器内引用它们。不需要特殊的 API 来执行此操作。