Angular 7集成@angular-redux/store遇TS2307:找不到redux模块
解决Angular 7中使用@angular-redux/store时"Cannot find module 'redux'"的错误
嘿,我一眼就看出问题所在啦!你遇到的这个TS2307错误,主要是两个小疏忽导致的:
1. 缺少核心redux依赖及类型定义
@angular-redux/store只是Redux在Angular中的绑定层,它本身并不包含Redux核心库。你的package.json里只装了@angular-redux/store,却没装它的必备依赖redux;而且作为TypeScript项目,还需要对应的类型定义才能让TS识别Redux的语法。
你只需要执行下面两个命令来安装它们:
npm install redux --save npm install @types/redux --save-dev
2. 忘记在AppModule中导入NgReduxModule
看你的AppModule代码,虽然你在顶部导入了NgReduxModule,但并没有把它加到@NgModule的imports数组里!Angular要求所有要使用的第三方模块必须在imports中声明,否则框架无法识别并加载它。
修改后的app.module.ts应该是这样的:
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { NgRedux, NgReduxModule } from '@angular-redux/store' import { rootReducer, AppState } from '../app/store'; import { AppComponent } from './app.component'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, NgReduxModule ], // 这里添加NgReduxModule providers: [], bootstrap: [AppComponent] }) export class AppModule { constructor(ngRedux: NgRedux<AppState>) { ngRedux.configureStore(rootReducer, {}); } }
最后一步
安装完依赖、修改好代码后,重启你的Angular应用:
ng serve
这时候那个找不到redux模块的错误应该就完全消失啦!
内容的提问来源于stack exchange,提问作者Murray Johnson
相关产品推荐
相关产品推荐

