专栏首页Jerry的SAP技术分享Angular StoreFeatureModule

Angular StoreFeatureModule

和StoreFeatureModule相关的一个错误消息:

main.ts:12 NullInjectorError: R3InjectorError(AppModule)[StoreFeatureModule -> ReducerManager -> ReducerManager -> ReducerManager]: NullInjectorError: No provider for ReducerManager! at NullInjector.get (http://localhost:4200/vendor.js:62758:27) at R3Injector.get (http://localhost:4200/vendor.js:76765:33) at R3Injector.get (http://localhost:4200/vendor.js:76765:33) at R3Injector.get (http://localhost:4200/vendor.js:76765:33) at injectInjectorOnly (http://localhost:4200/vendor.js:62613:33) at Module.ɵɵinject (http://localhost:4200/vendor.js:62623:57) at Object.StoreFeatureModule_Factory [as factory] (http://localhost:4200/vendor.js:139469:380) at R3Injector.hydrate (http://localhost:4200/vendor.js:77003:63) at R3Injector.get (http://localhost:4200/vendor.js:76753:33) at http://localhost:4200/vendor.js:76799:25

实例化StoreFeatureModule token:

使用factory构建token value:

取reducerManager:

报错:

恢复这行被注释掉的代码之后:

看看StoreModule.forRoot的实现源代码:

class StoreModule {
    /**
     * @param {?} reducers
     * @param {?=} config
     * @return {?}
     */
    static forRoot(reducers, config = {}) {
        return {
            ngModule: StoreRootModule,
            providers: [
                {
                    provide: _ROOT_STORE_GUARD,
                    useFactory: _provideForRootGuard,
                    deps: [[Store, new Optional(), new SkipSelf()]],
                },
                { provide: _INITIAL_STATE, useValue: config.initialState },
                {
                    provide: INITIAL_STATE,
                    useFactory: _initialStateFactory,
                    deps: [_INITIAL_STATE],
                },
                { provide: _INITIAL_REDUCERS, useValue: reducers },
                {
                    provide: _STORE_REDUCERS,
                    useExisting: reducers instanceof InjectionToken ? reducers : _INITIAL_REDUCERS,
                },
                {
                    provide: INITIAL_REDUCERS,
                    deps: [Injector, _INITIAL_REDUCERS, [new Inject(_STORE_REDUCERS)]],
                    useFactory: _createStoreReducers,
                },
                {
                    provide: USER_PROVIDED_META_REDUCERS,
                    useValue: config.metaReducers ? config.metaReducers : [],
                },
                {
                    provide: _RESOLVED_META_REDUCERS,
                    deps: [META_REDUCERS, USER_PROVIDED_META_REDUCERS],
                    useFactory: _concatMetaReducers,
                },
                {
                    provide: _REDUCER_FACTORY,
                    useValue: config.reducerFactory
                        ? config.reducerFactory
                        : combineReducers,
                },
                {
                    provide: REDUCER_FACTORY,
                    deps: [_REDUCER_FACTORY, _RESOLVED_META_REDUCERS],
                    useFactory: createReducerFactory,
                },
                ACTIONS_SUBJECT_PROVIDERS,
                REDUCER_MANAGER_PROVIDERS,
                SCANNED_ACTIONS_SUBJECT_PROVIDERS,
                STATE_PROVIDERS,
                STORE_PROVIDERS,
                provideRuntimeChecks(config.runtimeChecks),
            ],
        };
    }

这里就提供了之前报错信息里缺失的reducer:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Angular ERROR NullInjectorError: R3InjectorError(AppModule)的错误分析

    从injector的records map里查看,apiUrl对应的value为null:

    Jerry Wang
  • NullInjectorError:No provider for MyNewService

    发现上图的MyNewService在app.module.ts里缺少了providers定义。

    Jerry Wang
  • NullInjectorError R3InjectorError(AppModule)[StoreFeatureModule]

    main.ts:12 NullInjectorError: R3InjectorError(AppModule)[StoreFeatureModule -> R...

    Jerry Wang
  • PCL—低层次视觉—关键点检测(NARF)

    关键点检测本质上来说,并不是一个独立的部分,它往往和特征描述联系在一起,再将特征描述和识别、寻物联系在一起。关键点检测可以说是通往高层次视觉的重要基础。但本章节...

    点云PCL博主
  • 数据分析之Pandas(一)

    今日来谈谈数据分析的pandas使用,本来今天出cs231n的全连接网络更新的,结果没写成文章,太长了,至少2000-3000字,今晚有课,所以就没写成,明天继...

    公众号guangcity
  • 吴镝:TiDB 在今日头条的实践

    TiDB 主要应用在今日头条核心 OLTP 系统 - 对象存储系统中,存储其中一部分元数据,支持头条图片和视频相关业务,比如抖音等。

    PingCAP
  • java8 parallelStream性能测试

    默认是Runtime.getRuntime().availableProcessors() - 1,这里为7

    codecraft
  • 刘寅:TiDB 工具链和生态

    大家下午好,我叫刘寅。在 PingCAP 主要负责 TiDB 商业工具产品开发,也在做公司 SRE 方面的事情。今天下午我分享的主题是介绍下 TiDB 的周边工...

    PingCAP
  • TiDB 在零氪科技(LinkDoc)大数据医疗系统的实践

    零氪科技作为全球领先的人工智能与医疗大数据平台,拥有国内最大规模、体量的医疗大数据资源库和最具优势的技术支撑服务体系。多年来,零氪科技凭借在医疗大数据整合、处理...

    PingCAP
  • 美团点评 TiDB 深度实践之旅

    在美团,基于 MySQL 构建的传统关系型数据库服务已经难于支撑公司业务的爆发式增长,促使我们去探索更合理的数据存储方案和实践新的运维方式。随着近一两年来分布式...

    PingCAP

扫码关注云+社区

领取腾讯云代金券