Shared State
@State<PreferencesStateModel>({
name: 'preferences',
defaults: {
sort: [{ prop: 'name', dir: 'asc' }]
}
})
@Injectable()
export class PreferencesState {
@Selector()
static getSort(state: PreferencesStateModel) {
return state.sort;
}
}
@State<AnimalStateModel>({
name: 'animals',
defaults: [
animals: []
]
})
@Injectable()
export class AnimalState {
constructor(private store: Store) {}
@Action(GetAnimals)
getAnimals(ctx: StateContext<AnimalStateModel>) {
const state = ctx.getState();
// select the snapshot state from preferences
const sort = this.store.selectSnapshot(PreferencesState.getSort);
// do sort magic here
return state.sort(sort);
}
}Last updated

