javascript - Xstate 无法设置未定义的属性“_sessionid”
问题描述
我正在尝试为 Xstate 创建一个解释,并尝试将我在单独文件中创建的机器传递给它,如下所示:
import { Machine } from 'xstate';
const testMachine = Machine({
id: 'testMachine',
initial: 'start',
states: {
start: {
on: {
PUB_TOPIC: 'wait_micro_res',
},
},
wait_micro_res: {
on: {
MACHINE_DISCONNECTED: 'disconnection',
CONFIRMATION_RECEIVED: 'wait_order',
},
},
wait_order: {
on: {
DISCONNECTION_ORDER: 'end',
EXPERIMENT_ORDER: 'wait_measurement',
},
},
wait_measurement: {
on: {
EXPERIMENT_FINISHED: 'end',
MEASUREMENT_RECEIVED: 'receive_measurement',
},
},
receive_measurement: {
on: {
SEND_2_EXPERIMENT_MS: 'wait_measurement',
},
},
disconnection: {
on: {
RECONNECTION: 'wait_micro_res',
},
},
end: {
type: 'final',
},
},
});
export default {
testMachine,
};
我正在尝试以这种方式创建它:
import { interpret } from 'xstate/lib/interpreter';
import testMachine from '../stateMachine/index';
const machineService = interpret(testMachine)
.onTransition((state) => {
console.log(state.value);
})
.start();
但是我收到了这个错误:
TypeError: Cannot set property '_sessionid' of undefined
当我尝试在解释器的同一个文件中创建机器时,一切运行良好。我尝试登录机器,它似乎已正确导入,但我不知道是否还有其他我不知道的错误
解决方案
您的导出似乎有问题。您正在导出{ testMachine }
为默认导出而不是testMachine
.
你应该使用:
export default testMachine;
然后,当import testMachine from '../stateMachine/index';
您将获得所需的对象时。
现在,您正在导入一个具有testMachine
包含您机器的属性的对象。如果要保留该导出,请使用:
const machineService = interpret(testMachine.testMachine)
推荐阅读
- c - 根据 C 标准,int 的大小是多少?
- c++ - Why is my struct constructor, which contains other structs, not working?
- python - 关于 python 上 sort() 方法的一些问题
- javascript - mongoose find() 方法不是服务调用中的函数错误
- list - 在 Flutter 中调用函数时遇到空引用问题
- mysql - MYSQL 将毫秒转换为仅 MM:SS
- c# - 手动调整位图大小
- python - 无法加载 CSS Django IIS
- java - java.lang.NoClassDefFoundError:Tomcat 10 中的 jakarta/servlet/jsp/jstl/core/LoopTag
- docker - 为什么 vscode 的远程资源管理器会得到旧容器的列表?(码头工人)