【问题标题】:Gatsby navigate() with query parametersGatsby navigate() 带查询参数
【发布时间】:2022-07-07 00:20:38
【问题描述】:

我遇到了一个奇怪的问题。我正在尝试使用 gatsby 中的 navigate() 以编程方式导航(我也尝试过@reach/router)。但是每当我像这样向url添加查询参数时:

const id = "001"
const title = "information"
navigate(`/subpage?id=${id}&title=${title}`);

我导航到 404 页面,尽管地址栏中显示了正确的 url,包括参数。重新加载页面后,一切正常。

我找到了一些答案,但由于某种原因,它们都不适合我。你还能想到我在这里做错了什么吗?

【问题讨论】:

  • 它在gatsby developgatsby build 中是否具有相同的行为?
  • @FerranBuireu 我不太确定如何在本地运行 Gatsby 构建的输出。如果你能给我指点,我会试试看。
  • 只需运行gatsby build 并完成一次gatsby serve。默认情况下,您会在 localhost:9000/ 看到您构建的站点
  • @FerranBuireu 感谢您的提醒。我刚刚尝试过,似乎错误只出现在使用gatbsy develop 的开发过程中,而不是在使用gatsby serve 运行构建输出之后。

标签: gatsby query-parameters reach-router


【解决方案1】:

感谢您的提醒。我刚试了一下,好像错误 仅在使用 gatbsy develop 的开发过程中出现,而不是在运行后出现 使用 gatsby serve 构建输出。

我就是这么想的。发生这种情况是因为 Gatsby 确实在导航的生产中进行了重定向,但它没有检查它是否应该在初始渲染期间进行重定向,就像您在开发中描述的场景一样。

运行:

gatsby build && gatsby serve

构建您的网站并查看预期结果。导航应该没问题。

【讨论】:

  • 那么有没有一种解决方法可以让它在开发过程中发挥作用,或者有没有其他更接近 Gatsby 最佳实践的方法来实现它?
  • 据我所知,这是 Gatsby 的行为,除了在本地构建站点并对其进行测试之外,您无能为力。
  • gatsby build... 命令,错过了s
猜你喜欢
  • 2021-10-13
  • 2020-11-07
  • 1970-01-01
  • 2020-11-20
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 2017-08-07
  • 2021-02-11
相关资源
最近更新 更多