Странное поведение углового NgRx в режиме сборки по сравнению с режимом разработки - PullRequest
0 голосов
/ 28 февраля 2019

Я использую NgRx lib в проекте Angular 7.
Чтобы показать компонент в зависимости от экранов, я использую store для сохранения state: включено или отключено.
Он отлично работает в режиме разработки: ng serve, но как только я сгенерировал проект с использованием ng build --base-href'', я обнаружил другое поведение: некоторые компоненты, которые не предназначены для показа, действительно здесь!
Кто-нибудь испытывал такое поведение?найденные решения?

Вот мой код:

Редуктор

export function simpleReducer(state: string = 'activated', action: Action) {

  switch (action.type) {

    case '1':
      return state = 'activated'

    case '0':
      return state = 'disactivated'

    default:
      return state;
  }
}

Заголовочный компонент : в зависимости отэкран, показываю или нет кнопку справки, используя: *ngIf="isHelpActivated === 'activated'"

ngOnInit() {
    this.store.select('message').subscribe(value => {
      this.isHelpActivated = value;
    });
  }

компонент Coordiantes : пример экрана, где мне нужно показать кнопку справки

export class CoordinatesComponent implements OnInit {
...
  constructor(
    private store: Store<HelpState>,
    ...
  ) {}

  ngOnInit() {
    this.store.dispatch({type: '1'});
    ...
  }

  ...
}

Интерфейс HelpState

interface HelpState {
  message: string;
}

Конфигурация AppModule для NgRx

import {StoreModule} from '@ngrx/store';
...

@NgModule({
...
imports: [
...
StoreModule.forRoot({message: simpleReducer}),
...]
})
...