是否可以在xstate中定义一个过渡到自身的状态?

时间:2019-11-17 15:17:15

标签: state state-management xstate

请考虑以下FSM:

android {
    lintOptions {
        checkReleaseBuilds fals
        abortOnError false
    }
}

{ id: 'my_machine', initial: 'foo', states: { foo: { on: { TRIGGER_BAR: 'bar' } }, bar: { on: { TRIGGER_BAR: 'bar' TRIGGER_FOO: 'foo' } } } }); 是否可以通过bar事件再次转换为bar

1 个答案:

答案 0 :(得分:0)

绝对!这些称为自我转变。

  

自我过渡是指状态过渡到自身时,它可能会退出然后重新进入自身。自我过渡可以是内部过渡也可以是外部过渡。

默认情况下,所有自我转变都是外部的,因此它们将退出并再次进入。阅读docs,了解如何进行更改。

在上面的示例中,您可能不想再次转换为TRIGGER_BAR,因为没有上下文值更新。但是您很可能使用assign创建了一个使上下文发生变化的动作。