0

我正在尝试创建在移动到另一个状态时需要检查的 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",
          },
        },
      },

任何帮助解决它!

4

1 回答 1

0

我已经使用 XState 可视化工具测试了你的机器并且一切正常,你可以在这里查看

于 2021-12-09T17:59:40.437 回答