我遇到了使用NGXS的奇怪情况,例如,我有3个菜单:
ondestroy()
违约年
this.store.dispatch(new SetYear(
{
year:'2022'
})) .subscribe(
data => {
console.log('success default year')
},
error => {
console.log('error')
}
);user.state.ts
@Action(SetYear,{ cancelUncompleted: true })
SetYear(ctx: StateContext<UserStateModel>, action: SetYear) {
const state = ctx.getState();
ctx.setState({
...state,
users: [{
...state.users[0],
...action.payload
}]
});
}首先是sales菜单,其次是customer菜单,最后是设置默认年份菜单,然后使用调度()默认年份,但是http和http再次被调用。为什么会发生这种事?什么是解决办法?
发布于 2022-08-24 07:03:01
我解决了我的问题。在ngonInit()中的sales和customer组件中,我读取ngxs存储,给变量赋值并调用http请求
customer.component.ts : methode ngOnInit()
在此之前
this.users$.subscribe(async(data) => {
let idstore = data[0].idstore;
this.getCustomers(idstore) // call http request
})之后
this.users$.pipe(
take(1) //=> code solution pipe+take
).subscribe(async(data) => {
let idstore = data[0].idstore;
this.getCustomers(idstore) // call http request
})那是完美的
https://stackoverflow.com/questions/73195936
复制相似问题