1

我在我的应用程序中使用路由时遇到问题,它是使用 Shopify CLI、React 和 Shopify App Bridge 构建的模板,由此处的文档指导。

我触发的每条路由都会发送到我的项目中的 _app.js 文件,因为我可以在控制台中记录大部分输出,但我无法让它在我的应用程序中实际包含子页面的路径,例如https://{apphost}/custompage不会导航到 custompage但是错误处理程序和自定义页面被包含在查询中。props 的 route 和 pathname 字段返回

{ 
  ...
  router: "_error",
  pathname: "_error ",
  ...
}

代替

{ 
  ...
  router: "custompage",
  pathname: "custompage",
  ...
}

我希望以上是结果,但事实并非如此。但是 custompage url 确实出现在 asPath 字段中,就像这样asPath: "/custompage?hmac={hmac}&host={host}&shop={shop}"假装 {} 中的所有内容都有实际信息。

查询字段像在工作页面上一样获取它需要的字段。所以主要问题只是路由。

考虑到这一点,我得出的结论是,我可能有问题并触发服务器端路由处理程序,但我不知道从哪里开始重定向到确切的页面而不是样板代码附带的索引页面。我查看了他们的文档,但他们跳过了用他们的样板代码实际解释处理路由所需的大部分部分。我不想编辑主要功能,因为我担心它们可能会阻止整个应用程序运行,但我需要能够处理应用程序上的路由,而An unexpected error has occurred.在尝试路由到子页面时不会出现错误。即使在我的应用程序中对白名单 url 的扩展也会触发该错误,所以我认为我需要帮助来添加到应用程序或服务器的路由。

谁能帮我弄清楚我错过了什么?

4

1 回答 1

0

我还是 Shopify 的新手,但我可以说与 Shopify 合作是一场噩梦。

我不确定这是否是最终解决方案,但现在可行:确保您尝试路由的所有文件与您的路径具有相同的命名。如果您要路由到, https://{appURL}/subpath 那么您的 JS 文件应该是 subpath.js . 如果文件与我的 _app.js 位于同一文件夹中,我目前只能使其工作。如果我将文件从 移动 ./subpath /dir/subpath 然后我需要 https://{appURL}/dir/subpath 在我的 Shopify 应用程序设置中将扩展名更改为。它似乎相对于 _app.js 文件的位置进行操作,因此请记住这一点。

如果您使用 Shopify CLI 并 shopify node create 创建您的应用程序,那么这可以帮助您解决路由 400 问题。

于 2021-07-17T15:55:58.167 回答