我正在使用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');
我的问题是,为什么这个查询要从商店中删除用户?
答案 0 :(得分:0)
可能不是这个减速器吗? 但是也许您还有另一个reducer侦听相同的动作类型。