问题描述
我正在使用 @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 (将#修改为@)