我在我的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(
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));
上面的代码在ngrx/ RC4 1.1.1的Angular2 RC4中运行良好。
但是当我将Angular升级到RC5时,我得到了错误:Unhandled Promise rejection: this.updates$.ofType(...).switchMap is not a function
然后我将ngrx/NgModule升级到最新的2.0.0-beta.2版本(根据文档,应该为新的RC5效果定制),但得到了与上面完全相同的错误。是的,在这一步中,我将whenAction()
函数更改为ofType()
。
有什么想法吗?
发布于 2016-08-16 18:51:39
您不会在angular 2项目中自动导入所有RxJS操作符。您是否尝试手动导入switchMap
操作符?
import 'rxjs/add/operator/switchMap';
这一定存在于代码中的某个地方,可能是由第三方库导入的,在此之前不再导入运算符。
发布于 2019-02-22 05:12:56
使用import {switchMap} from 'rxjs/operators'
对我来说很有效!这是使用版本6.4.0
https://stackoverflow.com/questions/38972554
复制相似问题