无法添加属性1,对象不可扩展。 React-apollo,更新缓存

时间:2018-08-02 10:42:34

标签: javascript reactjs caching graphql react-apollo

我正在React中创建一个应用程序,但最近出现了此错误

  

无法添加属性1,对象不可扩展

我的更新功能如下

const update = teamId => (store, { data: { createChannel } }) => {
  const { channel, success } = createChannel;

  if (!success) {
      return;
  }
  const data = store.readQuery({ query: ALL_TEAMS });

  data.allTeams[teamId].channels.push(channel);

  store.writeQuery({ query: ALL_TEAMS, data }); 
}

我很惊讶,因为几周前我用react apollo创建了一个应用程序,而且一切似乎都正常。

当我像这样克隆数据对象时,它会按预期工作

const newData = JSON.parse(JSON.stringify(data));

我不确定为什么现在必须克隆数据对象。 我检查了阿波罗文档:

update: (proxy, { data: { submitComment } }) => {
    // Read the data from our cache for this query.
    const data = proxy.readQuery({ query: CommentAppQuery });
    // Add our comment from the mutation to the end.
    data.comments.push(submitComment);
    // Write our data back to the cache.
    proxy.writeQuery({ query: CommentAppQuery, data });
}

我看不到任何克隆; 最近在阿波罗发生了什么变化?

0 个答案:

没有答案