【发布时间】:2019-03-04 15:27:39
【问题描述】:
我发生了一件奇怪的事情,我不知道如何解决......
为了测试这一点,我创建了一个接收字符串负载和选择器订阅的操作。
我的选择器是:
const getLoginFeatureState = createFeatureSelector<LoginState>('login');
export const loginResult = createSelector(getLoginFeatureState, state => state.loginResult)
行动:
export class LoginSuccess implements Action {
readonly type = LoginActionTypes.loginSuccess
constructor(public payload: string) { };
}
我的订阅是:
this.loginStore.pipe(select(loginSelectors.loginResult)).subscribe(loginResult => {
console.log(loginResult);
});
我正在执行这些操作:
this.loginStore.dispatch(new loginActions.LoginSuccess("Test1"));
this.loginStore.dispatch(new loginActions.LoginSuccess("Test2"));
this.loginStore.dispatch(new loginActions.LoginSuccess("Test2"));
this.loginStore.dispatch(new loginActions.LoginSuccess("Test3"));
我的 console.log 显示
Test1
Test2
Test3
完全忽略了重复的Test2。
关于为什么会这样的任何帮助?
在我的 NgRx 开发工具中,它说“状态相等”,所以我猜如果状态相等,NgRx 不会触发事件?有没有办法告诉 NgRx 忽略这一点并始终通知我的订阅?
【问题讨论】:
标签: ngrx