Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Είχα την εντύπωση ότι το declaration ενός interface δεν παίζει ρόλο αν θα γίνει ξεχωριστά σε δικό του file ή ανάμεσα σε άλλον κώδικα.

Έλα όμως που είδα σε κάποιον κώδικα ότι παίζει ρόλο αυτό.

Σας έχει τύχει ποτέ;

Μπορώ να ποστάρω και τον κώδικα αν δεν γίνομαι κατανοητός!

Ορίστε και ο κώδικας.

ui.reducer.ts:

 

import {State} from '../interfaces/state.interface';
import {Action} from '@ngrx/store';
import {START_LOADING, STOP_LOADING, UIActions} from './ui.actions';

export interface State {
  isLoading: boolean;
}

const initialState: State = {
  isLoading: false
};

export function uiReducer(state = initialState, action: UIActions) {
    switch (action.type) {
      case START_LOADING:
        return {
          isLoading: true
        };
      case STOP_LOADING:
        return {
          isLoading: false
        };
      default: {
        return state;
      }
    }
}


export const getIsLoading = (state: State) => state.isLoading;

 

app.reducer.ts :

 

import {ActionReducerMap, createFeatureSelector, createSelector} from '@ngrx/store';
import * as fromUi from './shared/ui.reducer';

export interface State {
  ui: fromUi.State;
}

export const reducers: ActionReducerMap<State> = {
  ui: fromUi.uiReducer
};

export const getUiState = createFeatureSelector<fromUi.State>('ui');
export const getIsLoading = createSelector(getUiState, fromUi.getIsLoading);

 

Επεξ/σία από skiabox
Δημοσ.

Τελικά με μπέρδεψε και εμένα ο βιαστικός tutor που έγραψε τον κώδικα.

Χώρισα τα 2 διαφορετικά interfaces δίνοντάς τους άλλο όνομα το καθένα και τα έβαλα σε ξεχωριστά files.

Δημοσ.

Τελικά ο κώδικάς ήταν πιο σωστός έτσι όπως τον είχε γράψει ο tutor (φαίνεται στο επόμενο lesson του course) μιας και ουσιαστικά κάνει merging των sub states σε πιο πάνω αρχείο στο filetree.

Γενικά το ngrx στην angular έχει πολύ boilerplate code.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...