【问题标题】:Is gql-response READ_ONLY? If yes then why so?gql-response 是只读的吗?如果是,那么为什么会这样?
【发布时间】:2018-11-10 02:20:48
【问题描述】:
constructor(private apollo: Apollo) {}    

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

错误:

未捕获(承诺中):TypeError:无法分配给对象“[object Object]”的只读属性“id” TypeError:无法分配给对象“[object Object]”的只读属性“id”

【问题讨论】:

  • 请将您的代码添加到stackblitz
  • 实际上,我不能分享我的代码。例如,如果我在响应中低于 json { "data": { "allComments": [ { "id": "cja6h44lr9xrz0156ieb7hs5r" }, { "id": "cjbdvs5qz3kxl0130xf7rhop6" }, { "id": "cjcrtl75go3m80112fymxpj6d" }, { "id": "cjf094sb1uf5p0134aznxgkqu" }, { "id": "cjg51q77k8zuw01626blnxfem" } ] 我想更新 data.allComments[0].id,然后我得到类似的错误

标签: angular graphql graphql-js apollo-client


【解决方案1】:

发生这种情况的原因与 Redux、NGRX 或任何其他有商店的东西中的原因相同。您不想直接接触或改变商店。

默认情况下,NGRX 不会冻结对象,因此您不会收到任何错误,但他们强烈建议您避免改变结果。

想象一下,什么时候结果是可变的,你会在那里改变一个属性。它会反映到商店。

【讨论】:

    猜你喜欢
    • 2016-04-01
    • 2010-12-28
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2021-04-06
    • 2014-09-29
    • 2021-08-22
    • 2012-07-17
    相关资源
    最近更新 更多