Wpis z mikrobloga

Jestem nowy w ngrx i mam problem. Przy dodawaniu nowego posta w swoim cms-ie dodaje mi się on dwukrotnie do store, choć w bazie danych jest oczywiście tylko raz. Wygląda to tak po odpaleniu funkcji dodawania postu:
- [POSTS] Add post
- [POSTS] Load posts success - tutaj dodaje się pierwszy raz
- [POSTS] Add post success - tutaj dodaje się drugi raz, ale po kliknięciu wyskakuje błąd.
Co ciekawe, problem ten występuje tylko kiedy mam this.store.dispatch(new LoadPostsAction()) w ngOnInit w głównym AppComponencie. Jak wczytywałem posty w ngOnInit komponentu z listą postów, to nowy post dodawał się ładnie, ale store odpalał akcję ładowania postów po każdym przejściu na stronę główną. A jak od razu wchodziłem na panel admina, to tam rzecz jasna postów nie widziałem, bo inicjacji odpowiedniego komponentu nie było.

Czy to normalne, że po dodaniu posta automatycznie odpala się LoadPostAction?
Czy powinienem usunąć w takim razie payload (którym jest dodawany post) z akcji AddPostSuccess? Bo mam ten payload zarówno tam jak i w samym AddPost.

export class AddPostAction implements Action {
readonly type = PostsActionTypes.ADD_POST;
constructor(public payload : Post) {}
}
export class AddPostSuccessAction implements Action {
readonly type = PostsActionTypes.ADD_POST_SUCCESS;
constructor(public payload : Post) {}
}

Usunąłem payload przy sukcesie i działa, tylko nie wiem, czy to jest OK.

#angular #ngrx #redux #programowanie #naukaprogramowania
  • 1