1

使用 ngxs 我有以下设置,

用户状态.ts

export class UserState { ... }

产品状态.ts

export class ProductState { ... }

应用组件.ts

import {UserState} from './user.state'
import {ProductState} from './product.state'


export class App{

  /***      
        I am not sure but like ngrx we can't say,
        private userStore:Store<UserState>    <============ can we do it in constructor like it
  ***/


  @Select(UserState.getUsers) Users$: Observable<IUsers[]>;             // This works
  @Select(ProductState.getProducts) Products$: Observable<IProducts[]>; // This works

  constructor(private store : Store) {}  //<==== Can we have Store<UserState> or Store<ProductState>

  ngOnInit(){

     /***
          Below In 1 Case : when I type this.store.select(state => state.
          after .(dot) it doesn't resolve to .Users(Case 1) or .Products(Case 2)

          Question: So how can I use two different states for below cases????????????             
     ***/

   // 1 Case) 

           this.store.select(state => state.Users.Users).subscribe((users: IUsers[]) => {
                this.users = users;
           })

   // 2 Case) 

           this.store.select(state => state.Products.Products).subscribe((products: IProducts[]) => {
                this.products = products;
           })

  }
}

有没有使用 NGXS 的优雅方法????

4

1 回答 1

2

我认为这可能会帮助你

// Keep this as it is

@Select(UserState.getUsers) Users$: Observable<IUsers[]>;             
@Select(ProductState.getProducts) Products$: Observable<IProducts[]>; 

// And then use it like this

this.Users$.subscribe((users: IUsers[]) => {
    this.users = users;
})

this.Products$.subscribe.((products: IProducts[]) => {
    this.products = products;
})
于 2018-08-09T05:53:52.770 回答