У меня проблема с конечным автоматом Spring:
У меня есть иерархия состояний, пусть будет так:
{
S1 - initial
S2
S3 {
S3S1 - initial
S3S2
}
}
В настоящее время я нахожусь в состоянии S2 и хочу перевестичто касается S3S2, я предполагал, что в этом переходе следует вызывать действие в начальном состоянии, но это не так.Например, S3 представляет собой работу с некоторым модальным окном, и в состоянии S3S1 я должен инициализировать это окно, затем после этого, в S3S2, я могу работать с некоторыми элементами управления внутри этого окна, в настоящее время у меня нет способа сделать это путем определения одного перехода изS2 - S3S2 (пожалуйста, исправьте меня, если я ошибаюсь).
Я обнаружил эту очень старую проблему # 71 (https://github.com/spring-projects/spring-statemachine/issues/71) в github, она гласит: «Спецификация упоминает, что машина всегда должна вводить свою исходную информацию».состояние, но это немного неловко, если пользователь хочет войти непосредственно в состояние в автомате. ", но в моем понимании идеи конечного автомата имеет смысл, если вы не проходите через начальные состояния, зачем вам нужна иерархияна всех состояниях, вы можете определить все на одном уровне, по моему мнению, начальные состояния должны подготовить среду для работы других состояний в том же регионе, поэтому я не думаю, что начальные состояния должны быть пропущены, или в худшем случае это поведение должнобыть необязательным.