当前位置: 首页 > 知识库问答 >
问题:

GraphQL返回数据但在代码中未定义

唐修诚
2023-03-14

我正在使用下面的gql查询生成一个GraphQL请求。

export const GET_DETAILS = gql`
  query ($id: String) {
    country(id: $id) {
      currency
      phone
    }
  }
`;

但是当我在下面的代码中注销它时,它返回未定义的。

render() {
    return (
      <div>
        <Query query={GET_DETAILS} variables={{ id: `${this.props.match.params.code}` }}>
            {(loading, error, data) => {
              {console.log(data)} // ----> Here it is undefined

              return (
                <div>
                </div>
              );
            }}
        </Query>
      </div>
    );
  }

知道我做错了什么吗?该怎么纠正?

共有1个答案

长孙兴德
2023-03-14

与所有API请求一样,GraphQL查询是异步的,因此如果数据还没有从服务器到达,则无法记录数据,这看起来像是您正在尝试的。

如果您在记录数据之前检查数据是否存在,那么它将起作用。

if (data) {
   console.log(data);
}
 类似资料:
  • Apollo客户端在react应用程序上返回未定义的数据,但在gql游乐场上返回数据,我不明白为什么它不能在客户端工作,但在graphql游乐场上工作。 图式 我已经为用户查询定义了union,用于错误处理。

  • 我看了类似的问题,没有找到一个解决方案,我可以实现到我自己的代码,因此我做了这篇文章。我有以下代码: 最后一个console.log返回undefined,尽管pool.query中的console日志提供了我要查找的正确字符串。我尝试过的这段代码的另一个版本给出了暂挂的promise,而不是未定义的promise。 通过阅读其他文章,我理解这是因为我没有将wait与async函数一起使用。问题是

  • 我花了几个小时来查找为什么我的代码没有从这个结构X:/中检索到文件“firstname”的原因 当我在debug中时,我可以看到Firebase检索与“firstname”相同级别的所有其他字段,但最后一个字段始终为null,即使它中有有效数据。 这是我创建FireStoreRecyclerOptions的行: 这是我的QueryFireStore: 而X类是一个POJO,包含以下数据结构:

  • 问题内容: 我为一个朋友做了一些网络工作,帮助了他。他需要的一部分是在他的站点上更改几段文字的简单方法。与其让他编辑HTML,我决定提供一个带有消息的XML文件,然后我使用jQuery将它们从文件中拉出并插入到页面中。 它的效果非常好…在Firefox和Chrome中,在IE7中效果不佳。我希望你们中的一个能告诉我原因。我做了一个公平的但谷歌搜索,但是找不到我想要的东西。 这是XML: 这是我的j

  • 首先,我是在laravel中使用ajax的初学者。我试图通过警报或控制台检查输入字段是否正常工作。日志返回未定义。 我的刀片文件代码 我的控制器文件代码。。尽管其注释的公共函数存储(Request$Request){//Tag::create([ 网状物php/** 标签控制器*/ 路由::资源('tag','App\Http\Controllers\TagController'); 路由::po