ngrx Store 为空,但数据可通过 api 端点获得

问题描述

我正在实施 ngrx 数据,但我没有在存储中获取数据。但是,我可以使用 POSTMAN 通过我的 .net core web api 查看数据。

在控制台中查看商店时,我发现很少有未定义的值。

Store

在 ngrx devtools 中,我看到以下事件

ngrx tools

获得以下 API 响应:

[
  {
    "name": "Casados","id": 1,},{
    "name": "Divorciados","id": 2,}
]

功能模块如下:

const entityMetadata: EntityMetadataMap = {
  CivilStatus: {
    sortComparer: sortByName,entitydispatcherOptions: {
      optimisticUpdate: false,optimisticDelete: false,};

function sortByName(a: CivilStatus,b: CivilStatus): number {
  let comp = a.Name.localeCompare(b.Name);
  return comp;
}

@NgModule({
  declarations: [CivilStatusComponent,UpdateCivilStatusComponent,ListCivilStatusComponent,AddCivilStatusComponent],imports: [
    CommonModule,CivilStatusRoutingModule,SharedModule,HttpClientModule,ToastrModule.forRoot(),],providers: [
    CivilStatusResolver,CivilStatusService,OverlayService,CivilStatusDataService
  //  NotificationService
  ]
})
export class CivilStatusModule {
  constructor(
    private entityDeFinitionService: EntityDeFinitionService,private entityDataService: EntityDataService,private civilStatusDataService: CivilStatusDataService
  )
  {
    entityDeFinitionService.registerMetadataMap(entityMetadata);
    entityDataService.registerServices({
      'CivilStatus': civilStatusDataService
    });
  }
 }

服务实现如下:

export class CivilStatusDataService extends DefaultDataService<CivilStatus> {
  baseURL: string = environment.cuatrocienegasapi;
  apiURL: string =  'api/CivilStatus/';

  constructor(http: HttpClient,httpUrlGenerator: HttpUrlGenerator) {
    super('CivilStatus',http,httpUrlGenerator);
  }

  public getAll(): Observable<CivilStatus[]> {
    try {
       return this.http.get<CivilStatus[]>(this.baseURL + this.apiURL)
       .pipe(map(civilstatuses => civilstatuses.map (civilstatus => this.mapEntity(civilstatus))));
    } catch (error) {
       error.message =
         'Error in fetching all civilstatus methodName:get() ';
       throw error;
    }
  }

  public getById(id:number): Observable<CivilStatus> {
    try {
       return this.http.get<CivilStatus>(this.baseURL + this.apiURL + id);
    } catch (error) {
       error.message =
         'Error in civilstatus to fetch civilstatus methodName:getById(Id:number) ';
       throw error;
    }
  }

  add(civilstatus: CivilStatus): Observable<CivilStatus> {
   try {
      return this.http
      .post<{result: number}>(
        this.baseURL + this.apiURL,civilstatus
      )
      .pipe(
        map((data) => {
          return { ...civilstatus };
        })
      );
   } catch (error) {
      error.message =
        'Error in inseting record methodName:saveData() ';
      throw error;
   }
  }

  update(civilStatus: Update<CivilStatus>): Observable<CivilStatus> {
    try{
      return this.http.put<CivilStatus>(
        this.baseURL + this.apiURL,{ ...civilStatus.changes }
      );
    } catch (error) {
       error.message =
        'Error in updating record methodName:updateData() ';
       throw error;
    }
  }

  delete(id: number): Observable<number> {
    try {
      return this.http
      .delete<number>(this.baseURL + this.apiURL +  id)
      .pipe(
        map((data) => {
          return id;
        })
      );
    } catch (error) {
      error.message =
       'Error in updating record methodName:updateData() ';
      throw error;
    }
   }

   private mapEntity(civilStatus: CivilStatus): CivilStatus {
     return {
       ...civilStatus
     }
   }
 }

在 App.module.ts 中,我添加了以下内容

StoreModule.forRoot([]),EffectsModule.forRoot([]),EntityDataModule.forRoot({})

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...