Skip to Content
👋 Добро пожаловать в документацию lite-fsm!
РуководствоПродвинутые концепцииУсловные переходы и guards

Условные переходы и Guards

Условные переходы/guards - это механизм в lite-fsm, который позволяет определить логику перехода между состояниями в зависимости от определенных условий.

Что такое Guard?

Guard - это просто условие, которое автомат проверяет при обработке события. Если условие возвращает true, автомат выполняет переход в следующее состояние. Если условие возвращает false, автомат остается в текущем состоянии или может выполнить альтернативный переход.

В lite-fsm guards реализуются через функцию reducer, которая предоставляет полный контроль над тем, как события преобразуются в изменения состояния автомата.

import { createMachine } from 'lite-fsm'; const feedbackMachine = createMachine({ config: { form: { 'submit': 'submitting', }, submitting: { // другие переходы }, }, initialState: 'form', initialContext: { feedback: '' }, reducer: (s, action, { nextState }) => { // Guard: проверяем условие, что отзыв не пустой if (action.type === 'submit' && s.context.feedback.length === 0) { // Если условие не выполнено — не меняем состояние и выходим return; } // Условие выполнено — переходим в следующее состояние и обновляем контекст s.state = nextState; s.context = { ...s.context, ...action.payload } } });
Last updated on