如何解决修改 Apollo 客户端查询结果中深度嵌套的数据
我正在使用 @apollo/client
从 Storyblok'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 举报,一经查实,本站将立刻删除。