как получить идентификатор новых добавленных данных в редукторе - PullRequest
0 голосов
/ 02 мая 2019

Я отправляю действие, которое создает данные в базе данных, а также добавляет эти данные в редуктор. У меня вопрос, как я могу получить идентификатор только что добавленных данных? Я хочу показать идентификатор пользователю.

//on button click this method dispatch a action
create(){
 this.store.dispatch(new fromStore.CreateData({test:"hello"}));
 this.idOfCreatedData = ""; //dont know how
 //normally i retrieve data from store through 'selectors' like
 this.alldata= this.store.select(fromStore.getAllData);
} 

Данные создаются в магазине как

Идентификатор: { Тест: «Привет!» }

Редуктор имеет эти стандартные селекторы.

export function reducer():{ //just normal reducer
   switch(){
     case...
   }
}

export const getDataEntities= (state: MyState) => state.entities;
export const getDataLoading = (state: MyState) => state.loading;
export const getDataLoaded = (state: MyState) => state.loaded;
// here also, how to export just added data

выглядит примерно так же, как https://github.com/UltimateAngular/ngrx-store-effects-app/blob/15-create-pizza/src/products/store/reducers/pizzas.reducer.ts и https://github.com/UltimateAngular/ngrx-store-effects-app/blob/15-create-pizza/src/products/store/selectors/pizzas.selectors.ts

Я пытаюсь добиться того, чтобы при добавлении данных в базу данных в MyState я хотел напечатать на HTML, что

your new data entry has been added and id for this entry is {{idOfCreatedData}}

1 Ответ

0 голосов
/ 02 мая 2019

После того, как вы отправили действие, редуктор добавил ваши значения в хранилище, вам нужно выбрать данные из хранилища

this.store.select(yourSelectorFunction).subscribe()

Я думаю, что официальный пример приложения ngrx - лучший ресурс: https://github.com/ngrx/platform/tree/master/projects/example-app

...