我正在尝试创建在移动到另一个状态时需要检查的 xstate Machine(使用VueJs)。
问题是尝试的方式不适用于vue-kanban(https://github.com/BrockReece/vue-kanban) pkg
下面是我的示例状态机配置:
stateMachineConfig: {
id: "kanban",
initial: "on-hold",
states: {
"on-hold": {
on: {
IN_PROGRESS:"in-progress",
}
},
"in-progress": {
on: {
RELINQUISH_TASK: "on-hold",
PUSH_TO_QA: "needs-review",
},
},
"needs-review": {
on: {
REQUEST_CHANGE: "in-progress",
PASS_QA: "approved",
},
},
approved: {
type: "final",
},
},
},
这是看板的用户界面(https://ibb.co/6rWxN0F)
在我通过将条件添加到“暂停”状态来更改上述配置之后,我无法从“暂停”状态移动到任何地方。
以下是新配置:
const searchValid = (context) => {
console.log(`context.status `, context);
return true;
};
stateMachineConfig: {
id: "kanban",
initial: "on-hold",
states: {
"on-hold": {
on: {
PICK_UP: [
{
target: "in-progress",
cond: searchValid
}
]
}
},
"in-progress": {
on: {
RELINQUISH_TASK: "on-hold",
PUSH_TO_QA: "needs-review",
},
},
"needs-review": {
on: {
REQUEST_CHANGE: "in-progress",
PASS_QA: "approved",
},
},
approved: {
type: "final",
},
},
},
任何帮助解决它!