gpt4 book ai didi

graphql - Apollo Graphql fetchMore, updateQuery 不更新状态

转载 作者:行者123 更新时间:2023-12-05 03:27:19 24 4
gpt4 key购买 nike

<分区>

我目前正尝试在我的posts 上实现分页。这里使用Apollo graphql是我的useQuery

const { data: postsData, fetchMore } = useQuery(POSTS_BY_USER_DRAFT, {
fetchPolicy: 'network-only',
variables: {
user: user.id,
start: 0,
limit: limit
},
onCompleted: () => {
setTotal(postsData[model].meta.pagination.total)
}})

这是我的 onClick 处理程序,用于获取更多 posts

const loadMorePosts = async () => {
const nextStart = start + limit
setStart(nextStart);
await fetchMore({
variables: {
user: user.id,
offset: nextStart,
limit: limit,
},
updateQuery: (prevResult, { fetchMoreResult }) => {
if (!fetchMoreResult) {
return prevResult
}
const prevData = prevResult[model].data
const moreData = fetchMoreResult[model].data

fetchMoreResult[model].data = [...prevData, ...moreData]
// fetchMoreResult[model].data = [...moreData]
return fetchMoreResult
},
})}

我的查询是成功的,因为我确实得到了正确的数据,但是 postsData 没有得到更新

[注意]:如果我将 fetchMoreResult[model].data = [...prevData, ...moreData] 切换为fetchMoreResult[model].data = [...moreData] 我的 postsData 确实得到了更新。

我已经尝试过 return { ...fetchMoreResult } 和多种返回数据的方法,因为担心不可变性/比较问题,但它似乎没有完成这项工作。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com