Javascript 更新响应为光标分页形状的apollo缓存
我有一个直接消息组件,如果我发送消息,我需要用发送的新消息更新缓存。显示的消息列表是基于光标的分页形状。这就是它的样子Javascript 更新响应为光标分页形状的apollo缓存,javascript,reactjs,apollo-client,react-apollo,Javascript,Reactjs,Apollo Client,React Apollo,我有一个直接消息组件,如果我发送消息,我需要用发送的新消息更新缓存。显示的消息列表是基于光标的分页形状。这就是它的样子 data: { conversation: { status: 200, data: { pageInfo { startCursor endCursor hasNextPage hasPreviousPage } edges [{ curso
data: {
conversation: {
status: 200,
data: {
pageInfo {
startCursor
endCursor
hasNextPage
hasPreviousPage
}
edges [{
cursor: 'adsfskjaksfasd'
node: {
id: 'safasdks',
content: {
body: 'kjkajks'
}
}
}]
}
}
}
我在发送消息时得到的响应只是一个节点
data: { sendMessage: { data: {id: 'safasdks', content: { body: 'kjkajks'}} } }
若用于显示消息列表的对话查询不是基于光标的分页形式,那个么我会这样做
const [sendMessage] = useMutation(SEND_MESSAGE, {
optimisticResponse: true,
update(cache, result) {
const existingMessages: any = cache.readQuery({ query: CONVERSATION });
const newMessages = produce(existingMessages, (draft: any) => {
if (draft?.conversation?.data) {
draft.conversation.data.edges = result?.data?.sendMessage?.data;
// sendMessage return the data object which is a part of node. e.g {id: 'safasdks', content: { body: 'kjkajks'}}
}
});
cache.writeQuery({
query: CONVERSATION,
data: newMessages,
});
},
});
但是,我不知道如何更新缓存中基于光标的数据