What is store.select in ngrx

blackHawk picture blackHawk · Aug 12, 2016 · Viewed 31.1k times · Source

I'm new to Redux and started with ngrx. I'm unable to understand the meaning of this line of code store.select:

 clock: Observable<Date>;
 this.clock = store.select('clock');

Answer

Mav55 picture Mav55 · Jun 1, 2017

In very simple terms select gives you back a slice of data from the application state wrapped into an Observable.

What it means is, select operator gets the chunk of data you need and then it converts it into an Observable object. So, what you get back is an Observable that wraps the required data. To consume the data you need to subscribe to it.

Lets see a very basic example.

  1. Lets define the model of our store

    export interface AppStore {
       clock: Date
    }
    
  2. Import the Store into your component from '@ngrx/store'

  3. Create a store by injecting into the constructor

    constructor(private _store: Store<AppStore>){}
    
  4. Select returns an Observable.

    So, declare the clock variable in your component as follows:-

    public clock: Observable<Date>;
    

    Now you can do something like follows:-

    this.clock = this._store.select('clock');