微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

修改 Apollo 客户端查询结果中深度嵌套的数据

如何解决修改 Apollo 客户端查询结果中深度嵌套的数据

我正在使用 @apollo/clientStoryblok's API 获取数据。

我想遍历返回数据中的所有字段以可能清理其内容(它包含原始 HTML)。因为 Apollo 使结果数据不可变,所以我不能这样做:

const client = new ApolloClient({
  uri: "https://gapi.storyblok.com/v1/api",cache: new InMemoryCache(),headers: {
    token: "EXAMPLE",},});

function sanitizefields(obj) {
  for (const field of obj) {
    if (field?.type === "custom-rich-text") {
      field.content = sanitizeContent(field.content); // ? This generates an error because I'm trying to modify a read only object
    }

    if (Array.isArray(field) || isPlainObject(field)) {
      sanitizefields(field);
    }
  }
}

const postData = await client.query({ query: MY_QUERY });

sanitizefields(postData?.data?.Page);

如何在事先不知道特定字段名称的情况下修改@apollo/client 返回的深层嵌套数据?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。