объем переменной в angular 5 - PullRequest
1 голос
/ 28 мая 2020

Я знаю, что это глупый вопрос, но хотел бы знать точный объем переменной этого.

Я пробовал следовать, и если я внесу какие-либо изменения в данные, ответ тоже изменится.

Я пробовал следующее:

private response;
private data;

getdata() {
  this.service.getdata().subscribe((res: any) => {

    if (res) {
      this.response = res;
      this.data = res;
    }
  });
}

Если я использую данные в качестве входного параметра для другого компонента и вношу в них какие-либо изменения, мой this.response также изменяется.

Я не уверен, что делать, чтобы сохранить предыдущие данные.

1 Ответ

1 голос
/ 28 мая 2020

Это потому, что и ответ, и данные используют одну и ту же ссылку на объект.

Ваш код в условии if является не чем иным, как неглубокой копией друг друга

this.response = this.data = res; 

Следовательно, когда вы меняете один значение, другое значение также изменяется,

Чтобы этого не произошло, вы можете сделать следующее:

this.data = Object.assign({},res);

OR

this.data = {...res}

Прочитать this для получения дополнительной информации о мелком и глубоком копировании

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...