Aurelia存储连接到从不设置目标属性

Aurelia存储连接到从不设置目标属性,aurelia,aurelia-store,Aurelia,Aurelia Store,我根据文档设置了aurelia商店;在所有插件底部的main.ts中(来自dotnet core的框架应用程序),我定义了最后一个插件: aurelia.use.standardConfiguration() .plugin(PLATFORM.moduleName('aurelia-store'), { initialState }) 然后我的应用程序需要登录用户并保存其承载令牌 await aurelia.start(); await aurelia.setRoot(PLATFORM.mod

我根据文档设置了aurelia商店;在所有插件底部的main.ts中(来自dotnet core的框架应用程序),我定义了最后一个插件:

aurelia.use.standardConfiguration()
.plugin(PLATFORM.moduleName('aurelia-store'), { initialState })
然后我的应用程序需要登录用户并保存其承载令牌

await aurelia.start();
await aurelia.setRoot(PLATFORM.moduleName("modules/login/login.vm"));
在login类中,我尝试使用@connectTo装饰器。但是,它从不设置dependency属性。因此,在应用程序的一开始,我就被困在这个简单的部分,我的工作已经建议不要使用Aurelia,但我说我想使用fast POC

我已经准确地复制了文档,但仍然存在问题。值得注意的是,我必须在tsconfig中关闭strictNullCheck才能解析文档代码

Login.ts

@connectTo({
  target: 'state',
  selector: {
    userToken: (store) => store.state.pipe(pluck('userToken')), 
    loginRedirected: (store) => store.state.pipe(pluck('loginRedirected'))
  }
})
export class Login {
  static inject = [Aurelia, Store]
  public state: State;
  app: Aurelia;

  constructor(Aurelia, private store: Store<State>) {
    this.app = Aurelia
    store.registerAction('ChangeUserToken', this.changeUserToken)
    store.registerAction('LoginRedirected', this.loginRedirect)
  }

  activate() {
    ... this.state is always undefined.
    if (!this.state.loginRedirected) { //error
    }
  }
}

我只需要在login中设置userToken,然后在app.js中检索它。这是不可能的;让这个基本功能真正工作可能缺少什么?

ConnectTo是一个帮助器装饰器,可以避免手动状态订阅,因为状态流是一个可以观察到的普通rxjs。如果仔细查看官方插件文档,您会注意到它在不同的生命周期挂钩中设置了订阅

也就是说,connectTo无法解决所有问题,使用手动订阅,您可以获得最大的灵活性。 不要放弃你的追求你只是运气不好,一开始就陷入了一个更复杂的启动时机的场景,这很容易就可能让你被其他很多框架/库所困扰。另外,请务必访问官方Discussion.aurelia.io论坛,并向SO发回解决方案

{ userToken: "", loginRedirected: false }