Observable.switchMap 不工作并且没有任何错误

Observable.switchMap doesn't work and doesn't have any errors

我在使用 ngrx.store 和状态时遇到错误(?)。

在我发送新状态和减速器后 returns 新状态 nothing heppends 。订阅不会收到任何错误信息。 如果我删除 switchMap,代码会工作并且订阅者会得到他应该得到的值。

我尽可能减少了我的代码:

public a$:Observable<any>;
  constructor(private _userService:UserService, private _store:Store<any>)
  {
    this.a$=this._store
      .select(state=>state)
      .switchMap(state=>
      {
        return Observable.from(["1"]); //for simplicity.
      });
    this.a$.subscribe(
      something=>{
        console.log(something);
      },
      error=>{
        console.log(error);
      }
    );
  }

我的减速器:

export const connectedUserReducer = (state = initialState, action:Action) =>
{
  if(action==null || action.type==null)
    return state;
  switch (action.type) {
    case updateConnectedUser:
      return Object.assign({},state);  <<<-- It comes here and then nothing  heppends.<<--
    default:
      return state;
  }
};

我确实将 switchMap 导入为:"import 'rxjs/add/operator/switchMap';"

SwitchMap 是一个 rxjs 运算符,因此如果它是一个错误,很可能不是 ngrx/store 个错误。

https://plnkr.co/edit/0Ul8S0VlRwuBUAOuYDKG?p=preview

this.userList = this.userListService.userList.switchMapTo(Observable.from([[new User(1, "Mr. Grant")]]));

我正在使用我已经从另一个示例中设置的旧 plunker,但是如果你查看组件,我添加了一个 switchMapTo(类似于 switchMap,但它不会将原始 Observable 的值传递给功能)。一切都切换到新的 Observable 罚款。我不确定您的代码的其余设置,但希望通过查看它可以让您了解代码中可能存在的问题。

根据您发布的代码,老实说,我不明白为什么它不起作用。该错误可能存在于您的应用或设置中的其他地方。