Событие повышения подписки селектора ngrx несколько раз ... с реальным значением в хранилище, затем неопределенным, а затем пустым значением - PullRequest
0 голосов
/ 05 мая 2018

У меня есть проект, в котором я реализовал магазин ngrx.

мой магазин содержит корзину в виде списка товаров.

Я добавил селектор для этого

const getUserState=(state:AppState)=>state.user || {};
export const getCarts=createSelector(getUserState,fromUser.getCart)

но когда я подписываюсь на селектор, он вызывается несколько раз (в моем случае 3 раза: первый раз с правильным значением, второй раз не определено и третий раз с пустым значением)

моя подписка похожа на

 this.cartSubscription=this.store.select(getCarts).subscribe((cart)=>{
      console.log('---------in dashboard--------')
      console.log(cart);
    this.addedItems=cart;
    });

Есть ли идея, почему это происходит? enter image description here

1 Ответ

0 голосов
/ 06 мая 2018

Одно из действий делало состояние пустым.

Причина такого поведения:

Поскольку я обработал это действие, но пропустил случай переключения по умолчанию для типа действия в редукторе.

Вот почему это возвращало мне пустое состояние после того, как это действие отправили.

export function reducer(state:State=initialState,action:userActions){
 switch(action.type){
     case uActions.GET_ALL_FOOD_ITEMS_FINISHED: 
                 return Object.assign({}, state, { foodItems: action.payload});
      default: return state;
}
}

Случай по умолчанию спас меня:)

...