问题标签 [xstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
43 浏览

reactjs - 如何给机器人动态请求?

我刚刚找到了一个名为 Robot 的有限状态模块。它非常轻巧且简单。我遇到了一个无法解决的情况,那就是在 Robot 内部创建一个对 API 的动态请求。我试过这个

机器人.js

我像这样在我的反应组件中使用它

当我单击按钮时发生了问题,我的 Web 控制台记录了许多数据。似乎该事件被多次调用。我能在这里做什么?

0 投票
1 回答
275 浏览

javascript - Xstate 无法设置未定义的属性“_sessionid”

我正在尝试为 Xstate 创建一个解释,并尝试将我在单独文件中创建的机器传递给它,如下所示:

我正在尝试以这种方式创建它:

但是我收到了这个错误:

当我尝试在解释器的同一个文件中创建机器时,一切运行良好。我尝试登录机器,它似乎已正确导入,但我不知道是否还有其他我不知道的错误

0 投票
2 回答
43 浏览

typescript - 在运行时在提取的函数内提取正确的联合类型

我尝试为将在 xstate 中处理的事件创建类型。

目前 xstateprocessChangeEvent使用参数调用该函数DefinedEvent。无法更改此类型。
应该始终使用processChangeEvent更改事件调用,因此我想实现一种方法来检查给定事件是否是更改事件或抛出错误。

一切都在 if 语句中运行。打字稿编译器实现了CHANGE事件类型,因此我可以访问该value属性。

问题是我需要这个很多次。因此我试图提取processEventOrThrowException函数内部的逻辑。我知道回调必须以不同的方式输入Event<T,但我不知道怎么做?

0 投票
1 回答
1007 浏览

javascript - 让 xstate 机器接收事件并更新上下文(但不更改状态),无论它处于哪个状态

基本上,我有很多不同的状态。我希望机器能够通过事件从外部接收和更新上下文(无论它处于哪种状态)。我发现这个链接说事件如何是根级别的...... 使用xstate,是否可以配置一个适用于所有状态并在所有状态和子状态中以相同方式处理的事件?

但我似乎也记得 new assigns() 直到状态改变才真正生效。

0 投票
0 回答
61 浏览

javascript - 我在纤细的组件中集成 xstate 时出错

我正在我的 app.svelte 中使用 xstate 开发一个苗条的项目我有这个代码 =

在执行 npm run dev 时,出现此错误

node_modules/xstate/es/scheduler.js (27:11) 25: } 26: 27: this.process(callback); ^ 28: } 错误:在 Module.error (/home/ matias93/Escritorio/proyecto-2.0/plataforma-web/node_modules/rollup/dist/shared/rollup.js:9820:16)

0 投票
1 回答
149 浏览

reactjs - XState 和定期服务调用

在我的 React.js 应用程序中,我想使用 XState 框架来解决以下问题:在特定状态下,我需要定期(间隔 1 秒)获取数据并检查是否可以启动转换。我已经测试了这个构造:

如果收到 TICK 事件,则会出现此错误:无法生成“object”类型的实体“1”。我的问题是:如何正确地定期调用服务?

十分感谢,

米拉

0 投票
1 回答
314 浏览

state-machine - 状态正在改变,但 Xstate 中未触发转换

我正在与 Nextjs 一起使用 xstate。现在我被困在某个地方。

所以我在看文档。根据他们的说法,每当我从未经身份验证过渡到经过身份验证以及从经过身份验证过渡到未经身份验证时,它都应该在控制台为我记录下来。但事实并非如此。它只做一次。这里发生了什么事。另外,这样定义我的机器可以吗?提前致谢。

0 投票
2 回答
205 浏览

reactjs - 在 XState FSM 中使用外部数据

我正在尝试将 XState 填充到现有的状态管理系统中(在 React 应用程序中),并且我正在尝试弄清楚如何表示已经在旧状态管理中捕获的状态而不重复。

对于某些数据没有重叠,但至少在一种情况下(在屏幕上选择一个项目,导致应用程序send({type: "SELECT_ITEM", itemId: "xyz"})启动并触发setData("XYZ")),旧系统和新系统都关心该项目。XState 被用于 UI 状态管理,但遗留系统的副作用取决于其内部状态,因此我不能只在 XState 中拥有数据。

我对 XState 的理解是,我应该itemId在 XState 的上下文中表示为连续数据,但这会重复数据,我担心这会带来维护问题,因为所有开发人员都需要知道同时更新两者。XState Context 有没有办法从运行时评估的函数中获取值?我知道assign如果我想将值推送到 Context 中,但这很容易受到同样的维护问题的影响,所以我正在寻找一种方法来从legacy-state-manager调用state.context.itemId.

0 投票
0 回答
47 浏览

reactjs - 在 xState 操作中,如何访问私有 _state?

场景:当onEntry进入提交状态时,它会触发已定义的saveData操作。此操作会保留表单数据,但如果我硬编码数据集对象并使用它,我无法访问数据。我可以看到我需要的数据位于machine._state但这是私有的,我不知道如何访问它。有人可以告诉我怎么做吗?

在此处输入图像描述

0 投票
0 回答
75 浏览

javascript - 将通用 Promise 传递给 xstate 的调用

我试图用 xstate 和 Vue 创建一个通用的 http 状态处理程序。

我有以下功能:

我想作为一个xState 调用服务做出一个通用的承诺,它看起来像这样:

例如,它将接收 makeRequest 作为参数,并将通过 xstates 调用正确执行,因此它将是通用的,我可以传递将返回 Promise 的每个函数。

提前致谢!