Используя xstate, возможно ли настроить событие, которое применимо ко всем состояниям и обрабатывается одинаково для всех состояний и подсостояний? - PullRequest
0 голосов
/ 23 апреля 2020

Я новичок в xstate и пытаюсь использовать его в приложении, где пользователь может запрашивать разные вещи в приложении, основываясь на родительском состоянии и / или подсостоянии. Тем не менее, есть некоторые запросы, которые пользователь должен быть в состоянии сделать, независимо от того, в каком состоянии / подсостоянии находится приложение. Ответ на эти события одинаков, независимо от того, каким было предыдущее состояние. Как я могу настроить это событие, чтобы мне не приходилось повторять его определение для всех состояний / подсостояний?

1 Ответ

1 голос
/ 24 апреля 2020

Да - алгоритм выбора переходов аналогичен распространению событий DOM в том, что он осуществляет поиск от конечных узлов до узла root.

Вы можете определить переходы на узле root (верхний уровень ) который будет обрабатываться в любом состоянии естественным образом:

import { createMachine } from 'xstate';

const machine = createMachine({
  // ...

  // top-level transitions
  on: {
    ESC: {/* ... */}
  },
  states: {
    // ...
    someState: {
      on: {
        ESC: {/* override top-level transition */}
      }
    }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...