这一定是用户错误,但我有一个简单的应用程序currentUser
查询在 JWT 中查找 id,查找它并返回相应的用户。
我可以查看 devtools 并看到它在缓存中__ref:User:19
export const CURRENT_USER_QUERY = gql`
query{
currentUser {
id
fullName
email
}
}
`
但在我的组件中,当我这样做时const { currentUser } = client.readQuery({ query: CURRENT_USER_QUERY });
它(间歇性地)爆炸,因为:
Cannot destructure property 'currentUser' of 'client.readQuery(...)' as it is null.
用户:19 存在并且是我需要的所有内容。我点击重新加载,同一页面就可以工作了。
我在客户端中将默认错误策略设置为“全部”。
这是客户端的版本3.3.11。 Chrome v88.04,物有所值。反应 17.01。
我在这里错过了什么吗?如果该项目在缓存中,是否应该不同步(且可靠地)返回值?
有没有更好的方法来处理这种情况?我正在尝试让这个应用程序不再将内容存储在 redux 或某些上下文提供程序中,因为它已经由 Apollo 处理。让一堆不同的东西来处理这个责任似乎是多余的。
我遇到的问题是.readQuery()
昨夜。尽管逻辑是正确的,但我每次都返回 null。我正在打电话.readQuery()
在我导入到 React 页面的组件中。
最终我的问题是,我没有更新我在“父”反应页面中所做的与组件中的查询相同的查询。
我不知道这是否是你遇到的同样的问题,但我想我会把它留在这里,以供永久和展望。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)