Graphql 在Apollo客户端中,writeQuery更新缓存,但UI组件不会重新加载
我严格遵循阿波罗客户机2.6的文档。似乎从2018年起,人们就开始在网上讨论这个问题。我错过什么了吗?文档应该更新,这根本不起作用,很明显它对这么多人不起作用 当缓存成功写入时,如何让UI更新。这应该是开箱即用的。这是一个创建变异,我正在Graphql 在Apollo客户端中,writeQuery更新缓存,但UI组件不会重新加载,graphql,apollo-client,Graphql,Apollo Client,我严格遵循阿波罗客户机2.6的文档。似乎从2018年起,人们就开始在网上讨论这个问题。我错过什么了吗?文档应该更新,这根本不起作用,很明显它对这么多人不起作用 当缓存成功写入时,如何让UI更新。这应该是开箱即用的。这是一个创建变异,我正在addleo变异中添加一条记录,之后我想在所有记录列表中显示添加的记录,即list leo: const ADD_LEO = gql` mutation AddLeo($text: String!, $userId: String!){ addLeo(tex
addleo
变异中添加一条记录,之后我想在所有记录列表中显示添加的记录,即list leo
:
const ADD_LEO = gql`
mutation AddLeo($text: String!, $userId: String!){
addLeo(text: $text, userId: $userId) {
id
text
userId
}
}
`;
const LISTLEOS = gql`
query LISTLEOS {
ListLeos {
id
text
userId
}
}
`;
const [addleo, { loading, error }] = useMutation
(
ADDLEO,
{
update(cache, {data: {addleo}}){
const { ListLeos } = cache.readQuery({ query: LISTLEOS});
cache.writeQuery({
query: LISTLEOS,
data: { ROOT_QUERY: ListLeos.concat([addleo])},
});
}
}
);
上述情况会导致与
列表操作系统相关的组件重新加载,但不会。请提供帮助。无需将ROOT\u QUERY
用作键。传递给writeQuery
的data
选项应该与服务器返回的数据类似:
cache.writeQuery({
query: LISTLEOS,
data: { ListLeos: ListLeos.concat([addleo])},
});
提供了错误的语法/错误的数据。。。首先确保你做的事情是正确的