首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未处理的拒绝(TypeError):无法读取未定义- GraphQL的属性“重新获取”

未处理的拒绝(TypeError):无法读取未定义- GraphQL的属性“重新获取”
EN

Stack Overflow用户
提问于 2020-02-27 15:23:45
回答 2查看 3.1K关注 0票数 4

今天,我在我的GraphQL项目中遇到了一个React.js问题。我试图做的是,一旦完成一个突变,就重新获取一个查询。我的代码基如下

代码语言:javascript
复制
const getUserTeamQuery = useQuery(getUserTeam(usersFragment))
const data = get(getUserTeamQuery, 'data.getUserTeam')

const [updateUser] = useMutation(updateUserMutation(usersFragment), {
  onCompleted: () => {
    getUserTeamQuery.refetch()
  }
})

const updateTeam = async () => {
  await updateUser({ variables: { input: { pullTeam } } })
}

我还把这个问题发表在Github:https://github.com/apollographql/react-apollo/issues/3862

依赖关系

代码语言:javascript
复制
"@apollo/react-hooks": "^3.1.3",
"apollo-cache-inmemory": "^1.6.3",
"apollo-client": "^2.6.4",
"apollo-link": "^1.2.13",
"apollo-link-context": "^1.0.19",
"apollo-link-error": "^1.1.12",
"apollo-link-http": "^1.5.16",
"apollo-upload-client": "^11.0.0",
"react": "^16.10.2",
"react-apollo": "^3.1.3",

有什么办法解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2020-02-27 16:49:34

这是我如何解决问题的立场。

代码语言:javascript
复制
const [updateUser] = useMutation(updateUserMutation(usersFragment), {
  refetchQueries: [`getUserTeam`]
})

在useMutation的选项中,应该使用refetchQueries而不是onCompleted

应该管用的!

票数 1
EN

Stack Overflow用户

发布于 2021-01-29 22:25:53

超高速渲染组件可能会导致这个问题,我解决了它通过设置超时1秒,它的工作非常好。如下所示:

setTimeout(() => refetch(),1000);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60436513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档