Можно ли определить состояние, которое переходит само в xstate?
Рассмотрим следующий автомат:
{
id: 'my_machine',
initial: 'foo',
states: {
foo: {
on: {
TRIGGER_BAR: 'bar'
}
},
bar: {
on: {
TRIGGER_BAR: 'bar'
TRIGGER_FOO: 'foo'
}
}
}
});
Возможно ли bar
перейти к bar
снова через TRIGGER_BAR
событие?
1 ответ
Абсолютно! Это называется самопереходами.
Самопереход - это когда состояние переходит в само себя, из которого оно может выйти, а затем снова войти в себя. Самопереходы могут быть внутренними или внешними.
По умолчанию все самопереходы являются внешними, поэтому они будут выходить и входить повторно. Прочтите документацию, чтобы узнать, как это изменить.
В приведенном выше примере вы, вероятно, не захотите переходить на bar
опять же, поскольку нет обновления значения контекста. Но вы вполне можете создать действие с assign, которое изменяет контекст.