Vyhledávání na webu

angular - angular2 reaktivní formulář | Nezachycená chyba typu: Nelze nastavit vlastnost stack objektu [object Object], který má pouze getter


Snažím se implementovat reaktivní formulář v Angular2, ale při načítání komponenty dostávám chybu za běhu.

Nezachycená TypeError: Nelze nastavit vlastnost stack objektu [object Object], který má pouze getter

Tato chyba není úplně jasná, takže mám problém zjistit, co se děje. Sleduji článek na Angular University. Myslel jsem si, že možná došlo k zásadním změnám, takže jsem zkontroloval changelog Angular 2, ale nic jsem nenašel, co by souviselo s mým problémem s reaktivními formuláři.

Každá pomoc by zde byla oceněna. Budu pokračovat v hledání řešení.

addevent.component.ts

@Component({
  selector: 'addevent',
  templateUrl: 'addevent.component.html',
  styleUrls: ['addevent.scss']
})
export class AddEvent {

  // vars
  private _addEventForm:FormGroup;
  private _eventTitle:FormControl;
  private _eventDescription:FormControl;

  constructor(private _addEventService:AddEventService,
              private _formBuilder:FormBuilder) {
    // init vars
    this. _eventTitle = new FormControl('', Validators.required);
    this._eventDescription = new FormControl('', Validators.required);
    this._addEventForm = _formBuilder.group({
      'eventTitle': this._eventTitle,
      'eventDescription': this._eventDescription
    });
  }

  private addEvent():void {
    console.log(this._addEventForm);
    //this._addEventService.addEvent();
  }

}

addevent.component.html

<div class="h3 content-title">Add Event</div>

<form [formGroup]="_addEventForm" (ngSubmit)="addEvent()">
  <p>
    <label>Title</label>
    <input type="text" formControlName="eventTitle">
  </p>
  <p>
    <label>Description</label>
    <input type="text" formControlName="eventDescription">
  </p>
  <p>
    <button type="submit" [disabled]="_addEventForm.invalid">Submit</button>
  </p>
</form>

dashboard.module.ts

@NgModule({
  declarations: [Dashboard, Navbar, Sidebar, Home, Profile, Events, AddEvent],
  imports: [BrowserModule, FormsModule, ReactiveFormsModule, HttpModule],
  providers: [ContentSwap, SidebarActivity, AuthService, FirebaseAuthService]
})
export class DashboardModule {}

Odpověď č. 1

Někdy dostávám stejnou chybu. Vypadá to jako chyba v nejnovější verzi zonejs/angular. Abyste zjistili svou skutečnou chybu, nastavte si breakpoint na zásobník, odkud je tato chyba vyvolána. Skutečná chyba bude vstupní argument funkce, u které dojde k pádu.

Pokud potřebujete více informací https://github.com/angular/zone.js/issues/427

Odpověď č. 2

Sledováním vlákna ohledně problému na angular/zone.js mě jeden komentář nasměroval k tomu, jak se dostat k opravdové chybě.

uncaught TypeError: Cannot create property 'configurable' on string 'Error: No provider for AddEventService!

Jen mi chyběl poskytovatel pro novou službu, kterou jsem vytvořil.

Související články