在 Aurelia Store 的配置管道步骤中使用 @connectTo 装饰器时,状态始终未定义

State is always undefined when using the @connectTo decorator in a config pipeline step in Aurelia Store

我有一个使用 Aurelia Store 的 Aurelia 应用程序。我在 Aurelia 管道步骤中使用 @connectTo 装饰器时遇到了一些问题。

我已将以下步骤添加到我的配置管道中:

config.addPipelineStep('authorize', AuthorizeStep);

这一步看起来像:

@connectTo()
export class AuthorizeStep {
  state: State;

  run(navigationInstruction, next) {
    if (navigationInstruction.getAllInstructions().find(x => x.config.isAdmin)) 
    {
      if (!this.state.user.isAdmin) {
        return next.cancel();
      }
    }

    return next();
  }
}

但是,我的状态总是未定义。查看我项目的其他部分,我可以看到正在填充状态和用户,但在这个 AuthorizeStep 中似乎不起作用。

我认为这个问题可能是因为我的 AuthorizeStep 没有 bind 生命周期方法,但如果有,我该怎么办?

Aurelia 的维护者回应了(仅在我在他们的 GitHub 上提出问题后)here

基本上,由于此 class 中不存在绑定生命周期,因此 @connectTo 装饰器将不起作用。相反,我需要手动注入 Store 并订阅状态。