В Angular 6 я получаю ошибку «NullInjectorError: Нет поставщика для магазина» в компоненте - PullRequest
0 голосов
/ 17 ноября 2018

Этот упрощенный компонент отправляет действие для сохранения данных в хранилище:

import { Store } from '@ngxs/store';
import { ViewLogin } from '../actions/login.actions';

@Component({
  selector: 'app-navbar',
  templateUrl: './navbar.component.html',
  styleUrls: ['./navbar.component.css']
})

export class NavbarComponent {
  constructor(private store: Store) {}

  onSignInClick(login: string) {
    this.store.dispatch(new ViewLogin({ login }));
  }
}

Это всегда приводит к ошибке NullInjectorError: No provider for Store!.

Странно то, что у меня есть тот же код в другом компоненте приложения, и он работает без проблем!

Есть идеи?

1 Ответ

0 голосов
/ 20 ноября 2018

С NGXS вам не нужно внедрять Store напрямую как провайдер, вместо этого импортируйте NgxsModule в корень AppModule.

Здесь из документации:

import { NgModule } from '@angular/core';
import { NgxsModule } from '@ngxs/store';

@NgModule({
  imports: [
    NgxsModule.forRoot([
      ZooState
    ])
  ]
})
export class AppModule {}
...