我按照文档设置了 aurelia-store;在所有插件底部的 main.ts 中(来自带有 dotnet 核心的骨架应用程序),我定义了最后一个插件:
aurelia.use.standardConfiguration()
.plugin(PLATFORM.moduleName('aurelia-store'), { initialState })
然后我的应用程序需要登录用户并保存他们的不记名令牌。
await aurelia.start();
await aurelia.setRoot(PLATFORM.moduleName("modules/login/login.vm"));
在登录类中,我尝试使用 @connectTo 装饰器。但是它从不设置依赖属性。所以我在应用程序一开始就被困在这个简单的部分,我的工作已经建议不要使用 Aurelia,但我说我想要快速 POC。
我已经完全复制了文档,但仍然存在问题。值得注意的是,我必须在 tsconfig 中关闭 strictNullCheck 才能解析 doc 代码。
登录.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
}
}
}
我希望 this.state 属性具有从全局状态存储中填充的具有初始状态值的状态对象。例如
{ userToken: "", loginRedirected: false }
我只需要在登录中设置 userToken 并在 app.js 中检索它。这是不可能的; 使这个基本功能真正起作用可能缺少什么?