代码之家  ›  专栏  ›  技术社区  ›  Prashant Yadav

ERROR TypeError:无法设置只有getter的[object]的属性selectedContact

  •  0
  • Prashant Yadav  · 技术社区  · 8 年前

    我有一个班级联系人:

    export class Contact
    {
      public Id: string = '';
      public FirstName: string = '';
      public LastName: string = '';
      public Email: string = '';
      public Description: string = '';
      public Members: Array<User> = [];
      public Mute: boolean = false;   
    }
    

    我有另一个类SelectedContact继承了这个类

    export class SelectedContact extends Contact {
        public skipMessages: number;
        public hasMessages: boolean;
        public canSendMessage: boolean;
    }
    

    @Injectable()
    export class ContactService
    {
      private contactList: Array<Contact> = [];
      private selectedContactId: string;
    
      public get SelectedContact(): SelectedContact
      {
        const contact: Contact = this.contactList.find((v) => v.Id === this.selectedContactId);
    
        return contact ? contact : null;
      }
    
      public set SelectedContact(value: string | Contact): void
      {
        this.selectedContactId = typeof value === 'string' ? value as string : value.Id;
      }
    }
    

    然后在我的组件的ngOnInit()中,我试图设置局部变量,但得到错误:

    @Component({...})
    export class RightSidebarComponent implements OnInit {
        selectedContact: SelectedContact;
        ngOnInit() {
          this.selectedContact = this.contactService.SelectedContact;
        }
    }
    

    我得到以下错误:“error TypeError:Cannot set property selectedContact of[object object]which has only a getter”,在上面的一行中。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Karol Trybulec    8 年前

    看起来像 this.selectedContact 在组件中定义为getter。

    推荐文章