如何在 xstate 中重用状态转换?
How to reuse state transitions in 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",
}
除了将状态转换定义为良好的 ol' JavaScript 机器定义之外的对象之外,是否有特殊的方法可以做到这一点?
Other than defining the state transitions as good ol' JavaScript objects outside of the Machine definition
您回答了自己的问题!您已经知道如何删除这些数据的重复数据,因此将它们定义为外部对象并在机器内引用它们。不需要特殊的 API 来执行此操作。
采用以下有限状态机:
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",
}
除了将状态转换定义为良好的 ol' JavaScript 机器定义之外的对象之外,是否有特殊的方法可以做到这一点?
Other than defining the state transitions as good ol' JavaScript objects outside of the Machine definition
您回答了自己的问题!您已经知道如何删除这些数据的重复数据,因此将它们定义为外部对象并在机器内引用它们。不需要特殊的 API 来执行此操作。