问题标签 [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 回答
80 浏览

node.js - 尝试使用 xstate-plantuml 可视化 FSM 图时出现类型错误

我正在尝试创建一个脚本来自动化 xstate FSM 的可视化。因为现在有一种方法可以向 xstate-visualiser 发出 http 请求。我是xstate-plantuml用来做图的。因为它需要 JSON 作为输入,所以我JSON.stringify()在我的机器对象上使用并将代码传递给visualize.

我不断收到TypeError: value.replace is not a function错误,我怀疑这是我的 JSON 结构的问题,因为它似乎可以与它附带的原始示例一起使用。不幸的是,除了 npm 包中的一行之外,该错误没有提及位置。

编辑 jolly-spence-tr8ff

0 投票
1 回答
101 浏览

javascript - 开玩笑-反应自动机-未定义不是对象(评估'machine.states')

我目前正在测试我使用反应自动机的反应组件。当我运行测试时,它一直在中断。目标是测试我的 Lights 组件。我正在使用来自 react-automata 的名为“testStateMachine”的测试功能,因为我使用状态机来运行按钮单击时的灯光切换步骤。

这是我的代码示例:https ://codesandbox.io/s/statemachine-test-sj3w7

这是失败的测试,出现错误“无法读取未定义的属性‘状态’”。

最好的问候克里斯汀

0 投票
1 回答
1747 浏览

xstate - XState.js 如何将上下文发送到机器?

我是 XState.js 的新手。

我想在我的上下文中使用一个简单的 ID。如何使用更新上下文machine.send()

如何将 ID 传递给上下文?

这不能解决问题:

0 投票
1 回答
423 浏览

xstate - 可重用的表单状态机

在尝试围绕 xState 和一般状态机进行研究时,我想知道您将如何向表单状态机提供 API URL 以使其可重用。我目前的解决方案是通过withContext来提供,但是感觉不对。

0 投票
1 回答
1472 浏览

xstate - xstate - 如何正确处理转换错误?

我对 Xstate 完全陌生,我很难在官方文档中找到帮助。

问题很简单,我想知道一个事件是否在不应该触发的时候触发。

我有一个在转换方面非常严格的基本工作流程,例如,如果不从“已上传”传递,我的状态就不能从“待处理”变为“已处理”。

如果我使用:

当状态处于“待处理”状态时,状态不会改变(正确),但是 Xstate 中是否有任何实用程序或事件实际上告诉我事务没有被触发,因为事件不允许/正确?

这是我的状态

0 投票
2 回答
437 浏览

state-machine - 有没有办法在 xState 的层次状态节点中进行保护转换

正如标题所暗示的那样,我有一个受保护的转换,我想处于分层状态节点中,但是 xState 似乎无法读取保护的属性并返回一个“ TypeError: Cannot read property 'propertyName' of undefined" error

有没有办法在 xState 中做到这一点,或者在这种情况下我应该在没有分层状态节点的情况下继续

0 投票
1 回答
96 浏览

javascript - 难以解决 Javascript 中的导入错误

我是 JavaScript 和 vscode 的新手,设置它比我在工作中使用的任何其他语言都要困难。当我运行代码时(在 Test.js 中):

我收到一条错误消息,提示我必须使用 import 来加载 ES 模块。尽管尝试了这些修复,但我查看了类似的 StackExchange 线程无济于事。感谢任何帮助和可读资源。谢谢。

具体错误调试打印输出:

0 投票
1 回答
48 浏览

jestjs - Puppeteer:每次访问页面时存储和访问上下文或元数据

我正在尝试使用@xstate/testpuppeteer 和 jest 并结合它来自动生成结果。使用 jest 的beforeAllafterAll挂钩,我正在调用page.setRequestInterception并注册一个回调来拦截网络请求并模拟它们的响应。

XState 生成我想要测试的路径,并且我可以从每条路径中确定测试是否想要测试 API 失败或成功时应该发生的情况。我被困在如何正确地将其传达给 puppeteer 并在我的请求处理程序中访问该信息。

0 投票
1 回答
396 浏览

xstate - 使用actors将数据从父机器发送到子机器

我试图理解演员能够将数据从兄弟组件传递到另一个组件。

我有这些机器:父母和孩子。在转换中parentMachine发送一个GET事件。一旦收到一个它应该被分配给它的上下文中的一个属性。childMachinesuccesschildMachineevent.valueuser

currentChild.context现在,当我单击获取后登录时,该user属性为空。如何使用从parentMachine依赖于的组件中接收到的数据childMachine

CodeSandbox:https ://codesandbox.io/s/patient-frost-9lxoh


0 投票
1 回答
196 浏览

javascript - Firebase 云功能对 Xstate 没有任何作用

我正在尝试在 Firebase 上编写一个云函数,该函数会在编写另一个文档时更新 Firebase 中的文档。为此,我使用了触发方法 onWrite。我为此使用 Xstate,因为我的原始代码更复杂,但想法是相同的(问题也是如此)。这是我使用的代码(打字稿):

因此,当尝试更新子集合“产品”中的文档时,这应该会触发该功能。在日志中,我看到以下内容:

功能日志

绝对没有任何反应。当我在 MyMachine 的上下文中犯了一个小错误时(更改context: { doc: { products: "a product" } }context: { doc: { product: "a product" } },我确实看到了这个:

在此处输入图像描述

因此,承诺处理似乎有问题。我已经花了一天的时间;任何帮助表示赞赏!