【问题标题】:Getting undefined data when trying to use Graphql query and passing a post Id尝试使用 Graphql 查询并传递帖子 ID 时获取未定义的数据
【发布时间】:2022-01-19 20:52:07
【问题描述】:

我从 Next js 中的一些道具中获得了一个帖子 ID,我正在尝试将它传递给我的 Graphql 部分,就像下面的代码 sn-p 中一样

但结果我得到了未定义的数据,如果我手动传递 Id(它是一个字符串),我就能够获取所需的数据。

它返回 400 响应

在 VS Code 中,如果我将鼠标悬停在 PostID 变量上,它表明它没有被使用,但我已经在 gql 部分中使用了这个变量,有人可以帮我调试一下吗?

const PostID=JSON.stringify(props.id.id);

       const FETCH_POST_QUERY = gql`
       query getPost($postId:String)
        {
            getPost(postId:$PostID){
                body
                createdAt
                id
                username
            }
        }
    
         `
   
        const fetchPost = useQuery(FETCH_POST_QUERY);
        console.log(fetchPost);

【问题讨论】:

  • 你在用阿波罗吗?
  • 是的,我正在使用 Apollo 客户端

标签: reactjs graphql next.js


【解决方案1】:

您的查询中的变量名称似乎有错字:

query getPost($postId:String)
        {
            getPost(postId:$postId){
                body
                createdAt
                id
                username
            }
        }

如果这不能解决您的问题,请分享您的架构。

【讨论】:

  • getPost(postId:String!):Post 这是我在类型定义中的查询,我也怀疑我传递了一些错误,但是当我尝试传递 post 的值时(不是变量本身)我得到了想要的结果。另外我在我的代码 sn-p 中打了一个错字(stackoverflow),它应该是小写 p 而不是 cap P,我也会在这里编辑它(我不认为这是问题的原因)
  • 请分享您的架构
  • 输入帖子{ id:String!身体:字符串!创建于:字符串!用户名:字符串! cmets:[评论]!喜欢:[喜欢]!喜欢计数:诠释!评论计数:诠释! }
  • 您的查询和突变定义在哪里?
  • 必须将postID传递给useQueryvariables选项:const fetchPost = useQuery(FETCH_POST_QUERY, { variables: { postID } });,还需要将查询中的变量名称更正为postID或变量选项中:{ variables: { postId: postID }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
  • 2021-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多