Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angular 6 / NGRX组合减速器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Angular 6 w / NgRX 4.我有多个我想要结合的减速器.

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';

    import { StoreModule } from '@ngrx/store';
    import { EffectsModule } from '@ngrx/effects';

    import { StoreDevtoolsModule } from '@ngrx/store-devtools';

    import { AppComponent } from './app.component';
    import counterEffects from './store/counter/counter.effects';

    import reducers from './store/reducers';

    @NgModule({
      declarations: [AppComponent],imports: [
        BrowserModule,StoreModule.forRoot(reducers),EffectsModule.forRoot([counterEffects]),StoreDevtoolsModule.instrument({
          maxAge: 10,}),],providers: [],bootstrap: [AppComponent],})
    export class AppModule {}

reducers.ts

import { combineReducers } from '@ngrx/store';
import { reducer as counterReducer,key as counterKey } from './counter';
import { reducer as profileReducer,key as profileKey } from './profile';

const appReducer = combineReducers({
  [counterKey]: counterReducer,[profileKey]: profileReducer,});

export default (state,action) => {
  if (action.type === 'REDIRECT_TO_EXTERNAL') {
    state = undefined;
  }

  return appReducer(state,action);
};

我的减速机是标准的减速机,没什么特别的.

来自React / Redux背景,我会像这样设置多个reducers,但是在Angular中,当我尝试从商店中选择时,我得到了未定义.当我尝试使用开发工具查看商店时,我看不到我的减速器和状态都不是{}

如何在Angular 6 / NgRX 4中设置多个减速器?

解决方法

import { ActionReducerMap } from '@ngrx/store';
import { reducer as counterReducer,key as profileKey } from './profile';

export interface IAppState {
  [counterKey]: any;
  [profileKey]: any;
}

export const reducers: ActionReducerMap<IAppState> = {
  [counterKey]: counterReducer,};

大佬总结

以上是大佬教程为你收集整理的Angular 6 / NGRX组合减速器全部内容,希望文章能够帮你解决Angular 6 / NGRX组合减速器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。