gpt4 book ai didi

react-apollo - 从缓存中读取查询导致在对象未定义上找不到字段

转载 作者:行者123 更新时间:2023-12-03 15:52:25 24 4
gpt4 key购买 nike

我开始使用 graphQL 和 apollo。我正在做一些简单的查询和突变,但是当我尝试从 apollo 缓存访问数据时,我不断收到“无法在 undefined object 上找到我的字段”,但是当使用 apollo chrome 插件时,它返回的数据是正确的。

当登录到我的应用程序时,我运行一个从服务器获取用户对象的简单查询。它记录正确,我可以在查询和缓存下的 chome dev apollo 中看到我的用户数据在那里。

const ME_QUERY = gql`
query {
me {
_id
username
password
exchanges {
name
active
}
}
}
`;

<Query query={ME_QUERY}>
{({loading, error, data}) => {
if (error) {
return <Error error={error.message} />;
}
if (data) {
console.log(data, 'data');
}
return <div>asdf</div>
}}
</Query>

我已经用 Apollo 进行了包装,我可以在我尝试查询的组件中很好地记录客户端对象。我运行以下代码:
componentDidMount() {
console.log(this.props.client.readQuery, 'propps');
const user = this.props.client.readQuery({
query: gql`
{
me {
_id
username
password
exchanges {
name
active
}
}
}
`
});
console.log(user, 'user');

这导致 Uncaught Error :在对象未定义上找不到字段我我也尝试过添加变量,但它没有帮助。

哪个对象未定义?知道为什么我的查询失败了吗?

最佳答案

您可能正在使用 Apollo Client > 2.5 来处理本地状态。
阅读 migration guide了解更多信息。

  • 使用默认客户端 resolver解决您本地的状态
  • 使用cache.write将默认数据写入缓存。这是导致崩溃的迁移部分。
  • 关于react-apollo - 从缓存中读取查询导致在对象未定义上找不到字段 <field>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53995283/

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