我正在try 通过切片我的数据数组来向我的Angular 10.1.0项目添加翻页.然而,我得到了TS2339: Property 'slice' does not exist on type 'WritableSignal<Data[]>'错误.

以下是我的组件的摘录:

export class Component implements OnInit {
  data = signal<Data[]>([]);
  currentPage: number = 1;

  constructor(private httoService: HttpService) {}

  ngOnInit(): void {
    this.fetchData();
  }

  fetchData(): void {
    this.httpService.getData().subscribe((data) => {
      this.data.set(data);
    });
  }

  get paginatedData() {
    const start = (this.currentPage - 1) * 100;
    const end = start + 100;
    return this.data.slice(start, end);
  }

...
}

我的http.service.ts:

export class HttpService {
  http = inject(HttpClient);
  private apiUrl = 'url'

  getProducts(): Observable<Data[]> {
    return this.http.get<Data[]>(this.apiUrl);
  }
}

我try 在切片之前提取值: const dataArray = Array.from(this.data().values) 但它返回0.

推荐答案

我们需要执行信号,获取数组,然后slice

  get paginatedData() {
    const start = (this.currentPage - 1) * 100;
    const end = start + 100;
    return this.data().slice(start, end);  // <- changed here!
  }

Typescript相关问答推荐

如何在不使用变量的情况下静态判断运算式的类型?

了解TS类型参数列表中的分配

在TypeScript中使用泛型的灵活返回值类型

有没有一种方法可以在保持类型的可选状态的同时更改类型?

Redux—Toolkit查询仅在不为空的情况下添加参数

如何使函数接受类型脚本中具有正确类型的链接修饰符数组

在映射类型中用作索引时,TypeScrip泛型类型参数无法正常工作

无法从Chrome清除还原的初始状态数据

如何在另一个参数类型中获取一个参数字段的类型?

打印脚本中的动态函数重载

一个打字类型可以实现一个接口吗?

创建Angular 为17的动态形状时出错

为什么S struct 类型化(即鸭子类型化)需要非严格类型联合?

自定义 Select 组件的类型问题:使用带逗号的泛型类型<;T与不带逗号的<;T&>;时出错

为什么上下文类型在`fn|curred(Fn)`的联合中不起作用?

try 使Angular依赖注入工作

TypeScrip-根据一个参数值验证另一个参数值

界面中数组中的混合类型导致打字错误

使用Type脚本更新对象属性

必需的输入()参数仍然发出&没有初始值设定项&q;错误