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

state - 仅在条件通过时设置值的瞬态转换

采取以下代码:

这是转到“bar”根据“foo”中的一些定量数据设置警告的最佳方式吗?

0 投票
1 回答
207 浏览

javascript - 如何在 xstate 中重用状态转换?

采用以下有限状态机:

请注意,有两组重复的状态转换:

除了将状态转换定义为机器定义之外的良好 JavaScript 对象之外,是否有一种特殊的方法来做到这一点?

0 投票
1 回答
517 浏览

javascript - 使用 TypeScript 的 useMachine 引发关于类型不匹配的 Typescript 错误

我按照 github.com/carloslfu/use-machine 上的简单示例 xstate 有限机器创建了我的第一个示例,但遇到了以下打字稿错误:

这是我的代码:

而不是我只是在组件中调用它

知道我错过了什么吗?

链接到github上的问题。

0 投票
1 回答
342 浏览

state - 您可以将嵌套状态与 xstate 中的字符串路径匹配吗?

来自@xstate/react GitHub 存储库:

...对于分层和并行机器,状态值将是对象,而不是字符串。在这种情况下,最好使用 state.matches(...)

看起来像这样:

但是你可以用 替换{ loading: 'user' }"loading.user"

0 投票
1 回答
410 浏览

state - xstate 中 { actions: "" } 和 { entry: "" } 之间的区别?

在我看来,您可以通过以下方式之一触发动作:

明确地

隐含“入口”

在什么情况下你会选择其中一种?

0 投票
2 回答
650 浏览

state - xstate中的嵌套属性分配?

我知道您可以assign像这样使用动作创建器:

但是你可以这样使用它吗?

当然,在不删除所有其他嵌套值的情况下foo

0 投票
1 回答
111 浏览

typescript - Webpack 弄乱字符顺序导致意外令牌错误

我知道标题不是很具有描述性,但找不到更好的词。我正在使用“xstate”库,构建结果导致“意外令牌”错误。

这是我的 webpack.config.js:

构建代码后,bundle.js 的部分看起来像这样,导致“意外令牌”错误:

Xstate 正在以这种方式导入:

0 投票
1 回答
1787 浏览

reactjs - XState react - 跨多个组件共享机器实例

我有两台机器:AuthenticationMachineAddressMachine。AuthenticationMachine 由 使用,Login component而 AddressMachine 由 使用Address component。但是我需要token从 Address 组件中的 AuthenticationMachine 与 AddressMachine 一起使用。我试过Actor在 AuthenticationMachine 中生成一个,但它没有用。

认证机

0 投票
1 回答
1211 浏览

reactjs - 在 xstate 中模拟一个调用的 Promise

我正在尝试测试发生状态转换时是否调用了承诺。

我遵循了官方 xState 教程中概述的方法,但出现以下错误

Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.Timeout

这是我的状态机,它所做的只是在您从初始状态转换时调用一个承诺。

这是我的测试。我想模拟我的 api 调用,而不是像教程中那样触发真正的 api 调用。我用笑话来模拟副作用。我想断言模拟的副作用被调用了。但我得到了上面列出的错误。

我必须更改什么才能断言我的模拟副作用在机器转换时被调用?

0 投票
2 回答
917 浏览

javascript - 将事件发送到 XState 中的子服务数组

我有一个场景,我有一台父计算机和几台可以从父计算机生成的子计算机。

当前设置如下所示:

当父机器收到“UPDATE_CHILDREN”事件时,我想更新每个子服务。我知道您可以通过将数组传递给来发送批处理事件send,但我希望每个事件也被发送到不同的服务。我只看到一次将它们发送到单个服务的示例。我尝试了几件事,包括以下内容:

我错过了一些明显的东西吗?这可能吗?