【发布时间】:2020-05-05 00:37:12
【问题描述】:
我正在使用 NGRX 和实体适配器。我有一个名为TransactionsComponent 的组件。当这个组件第一次被调用时,它会按预期加载交易列表。
ngOnInit(): void {
this.store.dispatch( new actions.Query());
}
我还有一个userReducer,它会在用户通过身份验证时创建user ID。当我第一次加载TransactionsComponent 时,事务按预期加载。当我离开此页面时,user 状态将从商店中删除,我不确定原因。
我已将范围缩小到导致问题的这行代码。
this.store.dispatch( new actions.Query());
如果我删除这行代码,user 在组件之间导航时会保留在商店中。
这是我的reducer代码供参考
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');
我的问题是,为什么这个查询会从商店中删除用户?
【问题讨论】:
标签: angular ngrx angular2-observables