我正在使用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');
我的问题是,为什么这个查询会从商店中删除用户?
这可能不是这个reducer的问题,但也许你有另一个reducer监听相同的动作类型。