ngrx/效果开关图不再在Angular2 RC5中工作
我在Angular2应用程序中使用ngrx/effects,自RC5发布以来,我收到了一些错误。这是我的代码:ngrx/效果开关图不再在Angular2 RC5中工作,angular,ngrx,Angular,Ngrx,我在Angular2应用程序中使用ngrx/effects,自RC5发布以来,我收到了一些错误。这是我的代码: import { Injectable } from '@angular/core'; import { Effect, Actions } from '@ngrx/effects'; import { UserActions } from './user.actions'; import { LoginService } from '../login'; constructor(
import { Injectable } from '@angular/core';
import { Effect, Actions } from '@ngrx/effects';
import { UserActions } from './user.actions';
import { LoginService } from '../login';
constructor(
private updates$: Actions,
private userActions: UserActions,
private loginService: LoginService
) {}
@Effect() loadUser$ = this.updates$
.ofType(UserActions.LOAD)
.switchMap(() => this.loginService.loadUserData())
.map(user => this.userActions.loadUserComplete(user.userData));
上述代码在Angular2 RC4和ngrx/effects 1.1.1中运行良好
但当我将Angular升级到RC5时,我得到了一个错误:未处理的承诺拒绝:this.updates$.ofType(…)。switchMap不是一个函数
然后,我将ngrx/effects升级到最新版本2.0.0-beta.2(根据文档,该版本应为新RC5 NgModule定制),但得到与上述完全相同的错误。是的,我在这一步中将whenAction()
函数更改为ofType()
有什么想法吗?在angular 2项目中不会自动导入所有RxJS操作符。您是否尝试手动导入
switchMap
操作符
import 'rxjs/add/operator/switchMap';
这必须存在于您的代码中的某个地方,可能是由第三方库导入的,在此之前,该库不再导入运算符。使用
从'rxjs/operators'导入{switchMap}
为我工作!这使用的是6.4.0版我有这个导入,但是我得到一个错误,说
属性“switchMap”在类型Observable上不存在