减速器正在从商店中删除另一个减速器的状态

时间:2020-05-04 12:56:14

标签: angular ngrx angular2-observables

我正在使用NGRX和实体适配器。我有一个名为TransactionsComponent的组件。首次调用此组件时,它将按预期加载事务列表。

ngOnInit(): void {
    this.store.dispatch( new actions.Query());
  }

我还有一个userReducer,当用户通过身份验证时会创建user ID。当我第一次加载TransactionsComponent时,事务将按预期加载。当我离开此页面时,user状态将从商店中删除,我不确定为什么。

我将其范围缩小到导致问题的这一行代码。 this.store.dispatch( new actions.Query()); 如果我删除了这一行代码,user将在组件之间导航时保​​留在商店中。

这是我的减速器代码供参考

export const transactionAdapter = createEntityAdapter<Transaction>();

export interface State extends EntityState<Transaction> {}

export const initialState: State = transactionAdapter.getInitialState();

// Reducer
export function TransactionReducer(
    state: State = initialState,
    action: actions.TransactionActions
) {
    switch (action.type) {
      case actions.ADDED:
          console.log('added ran');
          return transactionAdapter.addOne(action.payload, state);
      case actions.MODIFIED:
          return transactionAdapter.updateOne({
              id: action.payload.id,
              changes: action.payload
          }, state);
      case actions.REMOVED:
          console.log(action.payload);
          return transactionAdapter.removeOne(action.payload.id, state);
      default:
          console.log('default ran');
          return state;
    }
}

// Create the default selectors
export const getTransactionState = createFeatureSelector<State>('transaction');

我的问题是,为什么这个查询要从商店中删除用户?

1 个答案:

答案 0 :(得分:0)

可能不是这个减速器吗? 但是也许您还有另一个reducer侦听相同的动作类型。