如何在 router.query 之后运行 GraphQL 查询?

Posted

技术标签:

【中文标题】如何在 router.query 之后运行 GraphQL 查询?【英文标题】:How do I run GraphQL queries after router.query? 【发布时间】:2021-04-14 23:24:38 【问题描述】:

不久前开始学习 React 和 Next,但在完成这项工作时遇到了麻烦。 也尝试使用 useLazyQuery 但无法弄清楚如何正确返回。

...
const TaskSingle = () => 

    const  category  = router.query;

    const  loading, error, data  = useQuery(GET_TASKS, 
        variables: 
            taskFilter: 
                taskCategory: 5, // works
                // taskCategory: category // doesn't work
            ,
        ,
    );


const  categories  = data;

return (
  <div>
  categories.map((cat) => 
      <div key=cat.id>
          cat.name
      </div>
  )
 </div>
)

当我尝试使用“类别”而不是数字时,我收到此错误: http://hidden-url:3000/graphql:1 加载资源失败:服务器响应状态为 400 (Bad Request)

【问题讨论】:

useQueryuseLazyQuery 来自哪个库?是阿波罗吗? @juliomalves 是的,阿波罗/客户 什么不完全有效?你有什么错误吗?如果是这样,您也可以发布吗? 嗯,我可能已经找到了这个。 “类别”是一个字符串,我需要一个数字 使用的 const category = Number(router.query.category);而不是 const category = router.query 并且它正在工作...... 【参考方案1】:

最后我用了

const category = Number(router.query.category);

而不是

const category = router.query;

因为我需要一个数字而不是字符串。

【讨论】:

以上是关于如何在 router.query 之后运行 GraphQL 查询?的主要内容,如果未能解决你的问题,请参考以下文章

react 中用next 传参,获取query参数

vue-router query params 常规传值

vue-router query和params传参(接收参数)的区别

luoguP3507 [POI2010]GRA 性质 + 动态规划

如何让 Grails 从 Maven 存储库中获取最新的本地 jars?

在 Next 9 上遇到动态路由问题