【问题标题】:Argument of type '(data: Products) => void' is not assignable to parameter of type '(value: Products[]) => void'(data: Products) => void' 类型的参数不能分配给 '(value: Products[]) => void 类型的参数
【发布时间】:2020-08-28 16:48:18
【问题描述】:

我遇到了 TypeScript 错误:

'(data: Products) => void' 类型的参数不能分配给'(value: Products[]) => void' 类型的参数。 参数 'data' 和 'value' 的类型不兼容。 类型“Products[]”不可分配给类型“Products”。 “Products[]”类型中缺少属性“id”。

这是我的架构:

export class Products {
  id: number;
  prodImage: any;
  catid: number;
  catId: number;
}

这是我收到错误的 ts 代码:

import { Component, OnInit } from '@angular/core';
import { Router, Params, ActivatedRoute  } from '@angular/router';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import {Products } from '../Admin/products/products';
import {ProductsService } from '../Admin/products/products.service';


@Component({
  selector: 'app-cart',
  templateUrl: './cart.component.html',
  styleUrls: ['./cart.component.css']
})
export class CartComponent implements OnInit {
  sess_id: any;
  prods: Products;
  cartList: Products;

  constructor(
    private router: Router,
    private productsService: ProductsService,
    private routes: ActivatedRoute,
  ) { }

  ngOnInit() {
    this.sess_id = localStorage.getItem('sess_key');

    this.productsService.viewCart(this.sess_id)
    .subscribe((data: Products) => {      //getting error over here
      this.cartList = data;
      console.log(this.cartList);

    });}}

我哪里错了??提前致谢

【问题讨论】:

  • productsService.viewCart 返回 Observable<Products[]> 而不是 Observable<Product>

标签: angular typescript


【解决方案1】:

您从服务中获取 Products 数组,而不是 Products 元素。设置cardList为: cartList :Products[]

【讨论】:

    猜你喜欢
    • 2022-07-20
    • 2021-04-18
    • 2023-04-05
    • 1970-01-01
    • 2021-10-22
    • 2017-04-05
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    相关资源
    最近更新 更多