如何解决未处理的拒绝错误:无法分配为只读对象“#<Object>”的属性“ getPosts”
我已经在互联网上搜索了有关此问题的解决方案,但尚未找到解决方案。我正在创建一个新帖子,并将其添加到Apollo根查询缓存中。由于某种原因,即使newData
随新查询返回一个新对象,也不会将其分配给缓存。
const [createPost,{ error }] = useMutation(CREATE_POST_MUTATION,{
variables: values,update(proxy,result) {
const data = proxy.readQuery({
query: FETCH_POSTS_QUERY,});
let newData = [...data.getPosts];
newData = [result.data.createPost,...newData];
proxy.writeQuery({ query: FETCH_POSTS_QUERY,data: newData });
values.body = '';
},});
解决方法
在发布了这个问题后,我就知道了。查看阿波罗writeQuery文档时,我注意到您必须复制每个状态。
sort
,
你可以这样做:
const [createPost,{ error }] = useMutation(CREATE_POST,{
variables: formValues,update(proxy,result) {
const data = proxy.readQuery({
query: FETCH_POSTS_QUERY,});
proxy.writeQuery({
query: FETCH_POSTS_QUERY,data: {
getPosts: [result.data.createPost,...data.getPosts],},});
formValues.body = "";
},});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。