在 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 并订阅状态。
我有一个使用 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 并订阅状态。