Skip to content

动作和参与者

当状态机运行时,它可以执行称为动作的效果。动作在转换触发时执行。动作是“触发即忘的效果”;一旦机器触发了动作,它就会继续处理转换并忘记该动作。你也可以在状态进入或退出时触发动作。阅读更多关于动作的信息

状态机可以调用参与者作为较长时间运行的进程,这些进程可以接收事件、发送事件,并根据接收到的事件改变其行为。你可以在进入状态时调用参与者,并在退出时停止。阅读更多关于参与者的信息

添加动作

  • 选择一个状态或转换并使用 动作
  • 选择一个状态并使用 进入动作退出动作
  • 选择一个状态或转换,从右侧工具菜单打开 详细信息 面板,并使用 效果 动作 按钮,然后选择 添加进入动作添加退出动作添加动作

使用 编辑图标按钮打开 源代码 面板并添加自定义实现代码。动作默认创建为自定义动作,但你也可以使用 XState 内置动作

要删除一个动作,使用 Backspace 键,右键单击并选择 删除,或使用 详细信息 面板中的 删除图标按钮。

添加动作参数

你可以通过选择动作并使用 参数 来添加动作参数。

添加调用的参与者

你可以在单个状态上调用多个参与者。顶级最终状态不能有调用的参与者。阅读更多关于调用参与者的信息

在上面的视频播放器中,当视频播放器处于 打开 状态时,会调用 startVideo 参与者。

在状态上调用参与者

  • 选择一个状态并使用 调用
  • 选择一个状态,从右侧工具菜单打开状态 详细信息 面板,并使用 效果 按钮,然后选择 添加调用的参与者

使用 编辑图标按钮打开 源代码 面板并输入参与者的源逻辑。

为你的参与者提供一个 ID,以便可以使用 sendTostop 动作来停止并向参与者发送事件。你可以通过选择参与者并使用 输入属性 来添加参与者输入。

要删除一个参与者,使用 Backspace 键,右键单击并选择 删除,或使用 详细信息 面板中的 删除图标按钮。

调用完成和调用错误事件

调用完成事件调用错误事件 在调用完成或返回错误后从状态转换。源状态必须有一个调用的参与者才能创建调用完成或调用错误事件。

  • 选择具有调用参与者的状态并从该状态创建一个新转换。第一个新转换将创建为调用完成事件。
  • 后续的新转换将创建为调用错误事件。

要将调用完成或调用错误事件改回常规转换,使用 三点菜单或 右键单击 转换,并从 事件类型 中选择 始终

XState 内置动作

你可以使用 源代码 面板中的逻辑模板中的以下内置 XState 动作,这些动作将在你的 导出代码 中格式化。选项有:

在 Stately 编辑器中生成参与者

即将推出