Да! Вы можете размещать переходы на машине верхнего уровня.
const machine = Machine({
// ...
states: { /*...*/ },
// top-level transition
on: {
"unexpected-error": { actions: /*...*/ }
}
});
В качестве альтернативы, поскольку это просто объект JavaScript, вы можете создать вспомогательную функцию:
function transitionsWithErrorHandler(transitions) {
return {
...transitions,
"unexpected-error": { actions: /*...*/ }
}
}
// ...
states: {
foo: {
on: transitionsWithErrorHandler({
EVENT: 'bar',
ANOTHER_EVENT: 'baz'
})
}
}