Настройка Redux на угловой 7 - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь настроить приставку в angular 7. Я прошел большинство учебных пособий, но большинство из них вводят не только модульный подход, но и непосредственный ввод.Я новичок в угловой 7.

Что я сделал до сих пор: мой магазин / module.ts

import { NgModule } from '@angular/core';
import { NgReduxModule, NgRedux, DevToolsExtension } from '@angular-redux/store';
import { IAppState } from '@/_models'
import { rootReducer } from './reducers';

@NgModule({
  imports: [NgReduxModule, ],
  
})
export class StoreModule {
  constructor(
    public store: NgRedux<IAppState>,
    devTools: DevToolsExtension,
  ) {
      store.configureStore(
        rootReducer,
        {},
        devTools.isEnabled() ? [ devTools.enhancer() ] : []);
  }
}

Ошибка в строке корневого редуктора:

Аргумент типа 'Reducer <{userReducer: IUser;}, AnyAction> 'нельзя назначить параметру типа' Reducer '.Типы параметров 'state' и 'state' несовместимы.

Мой reducer.ts:

import { combineReducers } from 'redux';
import { userReducer } from '@/_reducers'

export const rootReducer = combineReducers({
  userReducer,
});

Мой user.ts:

export interface IUser {
  id: number;
  username: string;
  password: string;
  firstName: string;
  lastName: string;
  token: string;
}

Мой пользователь Редуктор:

import { UserActions } from '@/_actions';
import { Action } from 'redux';
import { IUser } from '@/_models'

const INITIAL_STATE: IUser = {
  id: 0,
  username: '',
  password: '',
  firstName: '',
  lastName: '',
  token: '',
};

export function userReducer(state: IUser = INITIAL_STATE, action: Action) {
    switch (action.type) {
      case UserActions.SET_USER_ID:
        return {
          ...state,
          id: 1,
        };
    }
    return state;
}

Мой app.module.ts:

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

import { routing } from './app-routing.module';
import { AppComponent } from './app.component';
import { LoginComponent } from './login/login.component';
import { HomeComponent } from './home/home.component';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { StoreModule } from '@/store'
@NgModule({
  declarations: [
    AppComponent,
    LoginComponent,
    HomeComponent
  ],
  imports: [
    BrowserModule,
    routing,
    FormsModule,
    ReactiveFormsModule,
    StoreModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Это может быть тривиально для специалистов по угловым 7, но любая помощь приветствуется.Что мне не хватает?Обратите внимание, что я хочу хранить модуль магазина отдельно.

...