Gql-response READ_ONLY? Если да, то почему?

constructor(private apollo: Apollo) {}    

ngOnInit(){
    /* -- apollo query setup--- */             
    const subscriber = this.apollo.query<any>(this.options);
    subscriber.subscribe((data) => {
        data.data.id = 'demo'
    } 
}

Ошибка:

Uncaught (in promise): TypeError: Cannot assign to read only property 'id' of object '[object Object]' TypeError: Cannot assign to read only property 'id' of object '[object Object]'

пожалуйста, добавьте свой код в stackblitz

Arash 31.05.2018 08:36

На самом деле я не могу поделиться своим кодом. Скажем, например, если я получаю в ответе значение ниже json {"data": {"allComments": [{"id": "cja6h44lr9xrz0156ieb7hs5r"}, {"id": "cjbdvs5qz3kxl0130xf7rhop6"}, {"id": "dycrtl175" }, {"id": "cjf094sb1uf5p0134aznxgkqu"}, {"id": "cjg51q77k8zuw01626blnxfem"}] И я хочу обновить data.allComments [0] .id, тогда я получаю аналогичную ошибку

khush 31.05.2018 09:25
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
2
68
1

Ответы 1

Это происходит по той же причине, что и в Redux, NGRX или любой другой вещи, у которой есть хранилище. Вы не хотите напрямую трогать или изменять магазин.

NGRX по умолчанию не замораживает объект, поэтому вы не получите никаких ошибок, но они настоятельно рекомендуют избегать изменения результатов.

Представьте, что результат будет изменчивым, и вы измените там свойство. Это отразится в магазине.

Другие вопросы по теме