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

时间:2019-11-18 15:16:24

标签: 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",
      },
    },
  },
});

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

on: {
  FOO: "foo",
  bar: "bar",
}
on: {
  BAZ: "baz",
  QUX: "qux",
}

除了将状态转换定义为Machine定义之外的优秀JavaScript对象之外,还有一种特殊的方法吗?

1 个答案:

答案 0 :(得分:1)

  

除了将状态转换定义为Machine定义之外的所有JavaScript对象

您回答了自己的问题!您已经知道如何对这些数据进行重复数据删除,因此将它们定义为外部对象并在计算机内对其进行引用。不需要特殊的API即可做到。