Я использую 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}),
...]
})