web-dev-qa-db-fra.com

Erreur: aucun fournisseur pour Store! lorsque vous essayez @ ngrx / store avec Angular 4.0

Problème: Erreur: aucun fournisseur pour Store!

Je démarre le module de magasin dans main.ts:

platformBrowserDynamic().bootstrapModule(AppModule,[
  provideStore({
    characters, 
    vehicles
  })
]);

Et en injectant dans vehicle.component.ts:

constructor(
    private _route: ActivatedRoute,
    private _router: Router,
    private _vehicleService: VehicleService,
    private _store: Store<any>
  ) {}

Le code source complet est ici: GitHub , dernière version en cours d'exécution sur les pages GitHub

PS. L'ajout de Store aux fournisseurs entraîne une autre erreur: impossible de résoudre tous les paramètres de Store: (?,?,?).

11
Anton Pegov

Dans app.module.ts, ajoutez:

import { Store, StoreModule } from '@ngrx/store';

@NgModule({
  imports: [
      StoreModule.provideStore({ characters, vehicles }),
  ...
7
FRECIA

J'ai eu cette erreur parce que, dans mon composant, l'importation automatique importait Store de import { Store } from '@ngrx/store/src/store' au lieu de import { Store } from '@ngrx/store'; . Quoi qu'il en soit, c'était en Angular 5

15
Alf Moh

Par souci d'exhaustivité, avec Angular 5/Ngrx 4.1.1, ce serait (dans app.module.ts):

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

@NgModule({
    imports: [     
        StoreModule.forRoot(reducers),
        ...
    ],
    ...

Il y a un exemple complet ici

3
Manuel Manhart