升级到角度应用程序到v10错误

时间:2020-10-01 05:19:41

标签: angular typescript

正在执行演示应用程序。是angulat的新手。下面是我的类别列表组件。

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

import { AngularGridInstance, Column, GridOption, GraphqlService, GraphqlResult, Filters, Formatters, OnEventArgs, FieldType } from 'angular-slickgrid';

import { CategoryDataService } from 'src/app/core/services/category-data.service';
import { PageService } from 'src/app/core/services/page.service';


const GRAPHQL_QUERY_DATASET_NAME = 'categories';


@Component({
  templateUrl: './category-list.component.html',
  styleUrls: ['./category-list.component.css']
})
export class CategoryListComponent implements OnInit {
  angularGrid: AngularGridInstance;
  columnDefinitions: Column[];
  gridOptions: GridOption;
  dataset = [];

  constructor(private dataService: CategoryDataService, private router: Router, private pageService: PageService) {
  }

  ngOnInit(): void {
    this.columnDefinitions = [
        ...removed
    ];

    this.gridOptions = {
      backendServiceApi: {
        service: new GraphqlService(),
        options: {
          columnDefinitions: this.columnDefinitions,
          datasetName: GRAPHQL_QUERY_DATASET_NAME
        },
        process: (query) => this.getCategories(),
      }
    };;
  }

 
  getCategories(): Observable<GraphqlResult> {
    var args = this.pageService.getPageArgs(this.angularGrid);

    return this.dataService.searchCategories(args)
      .pipe(map(
        page => {
          var result: GraphqlResult = {
            data: {
              [GRAPHQL_QUERY_DATASET_NAME]: {
                nodes: page.items,  ---here i am getting error
                pageInfo: {
                  hasNextPage: page.hasNextPage
                },
                totalCount: page.totalCount
              }
            }
          };

          return result;
        }));
  }
}

该演示项目之前运行良好。当我更新到最新的光滑网格版本时,我得到以下错误..它表明没有键入任何... 请让我知道如何将泛型类转换为任何类型..谢谢

Error

分页界面。

export interface IPagedList<T> {
     pageIndex: number;
     .... removed
    
    items: T[];
}

错误: 计算属性值的类型为'{节点:IProduct []; pageInfo:{hasNextPage:boolean; }; totalCount:数字; }”,该类型不可分配给“ any []”类型。 对象文字只能指定已知的属性,而“节点”在类型“ any []”中不存在。

1 个答案:

答案 0 :(得分:1)

Angular-Slickgrid的版本2.15.x中有一个小小的重大更改,我在使用分页时添加了新的GraphqlPaginatedResult类型,而当您不使用时添加了GraphqlResult,它更能代表哪个是哪个。因此,您只需要将“类型”切换为GraphqlPaginatedResult。我不想仅针对那1个小的Type更改发布一个中断版本(3.x)(我认为没有人使用GraphQL部分大声笑),所以您需要更新代码(从GraphqlResultGraphqlPaginatedResult的查找和替换。)

getCategories(): Observable<GraphqlPaginatedResult> {

在此Release变更日志中对此进行了解释。

此外,完成更改后,我创建了一个新的Example 27 - Graphql without Pagination,它是使用GraphqlResult的那个,而前一个Example 6 - Graphql使用的是新的GraphqlPaginatedResult类型。