Я пытаюсь реализовать редактирование формы, используя angular и ngrx. Я могу получить доступ к данным формы, используя ngrx и передавая дочерний компонент, и он отображается нормально. Но когда я пытался отредактировать поле, я получаю «ОШИБКА TypeError: Невозможно назначить только для чтения свойство« #fieldname »объекта« [object Object] '». Ниже приведен фрагмент кода, который я использую.
Родительский компонент:
ngOnInit(): void {
this.formData$ = this.store.pipe(select(fromData.getData));
}
<app-child [afeData]="formData$ | async">
</app-child>
Дочерний компонент
<label>Name</label>
<input id="input" type="text" [(ngModel)]="formData.name">
<button type="button" (click)="SubmitData($event);" label="Save"></button>
Когда я выполняю глубокое клонирование данных формы ответа, используя JSON .parse, как показано ниже на родительском компоненте, тогда он работает отлично. Есть ли лучший способ достичь этого без глубокого клонирования объекта?
ngOnInit(): void {
this.store.pipe(select(fromData.getData)).subscribe(res =>{
this.fromData = JSON.parse(JSON.stringify(res));
});
}