当前位置: 首页 > 面试题库 >

如何在盖茨比中创建动态路线

常心水
2023-03-14
问题内容

我已经使用此 链接 设置了gatsby项目。它工作正常。

现在,我知道如何通过在 pages 文件夹内定义组件来创建路由。但是现在我面临一个新挑战,我需要创建一条动态路线,以便我可以通过
id 它(就像一样reactjs)。

<Route path: "/path/:id"/>

如何在盖茨比做到这一点?


问题答案:

您必须明确告诉gatsby路径应该是动态的。从文档:

// gatsby-node.js
// Implement the Gatsby API “onCreatePage”. This is
// called after every page is created.
exports.onCreatePage = async ({ page, actions }) => {
  const { createPage } = actions

  // page.matchPath is a special key that's used for matching pages
  // only on the client.
  if (page.path.match(/^\/app/)) {
    page.matchPath = "/app/*"

    // Update the page.
    createPage(page)
  }
}

然后您可以在其中使用动态路由 src/pages/app.js

import { Router } from "@reach/router"

const SomeSubPage = props => {
  return <div>Hi from SubPage with id: {props.id}</div>
}

const App = () => (
  <Layout>
    <Link to="/app/1">First item</Link>{" "}
    <Link to="/app/2">Second item</Link>{" "}

    <Router>
      // ...dynamic routes here
      <SomeSubPage path="/app/:id" />
    </Router>
  </Layout>
)

export default App

/app/*现在,将动态处理所有内容。您应该在道具中照常找到自己的ID。

看看他们的身份验证示例https://github.com/gatsbyjs/gatsby/tree/master/examples/simple-
auth



 类似资料:
  • 获得一台新电脑并从GitHub克隆了我的项目,然后运行,但随后它安装时出现了许多错误,因此现在我运行了,并获得了下面的错误消息。请帮助我 错误#10226配置 找不到在“C:\Users\Administrator\Desktop\Projects\IamJude\gatsby config.js”中声明的“gatsby plugin sharp”插件。 尝试在C:\Users\Administr

  • 当我运行命令启动开发服务器时,我得到以下错误消息: 成功打开并验证盖茨比配置-0.006错误未处理拒绝 错误:找不到插件“gatsby plugin sharp”。也许你需要安装它的软件包? > 装载。js:107解析插件[gatsby站点]/[gatsby]/dist/bootstrap/load插件/load。js:107:11 负载js:119 processPlugin[gatsby站点]

  • 我正在尝试让bootstrap.css和谷歌字体CDN在我的盖茨比项目中工作。 没有HTML文件;只是JavaScript文件。 对于引导,我可以,然后从中导入。 试图弄清楚如何从Google Fonts获得字体;我安装了。 我正在使用添加: 然而,我得到下面的错误; “constructor”参数无效。必须提供函数或null 我做错了什么,我该如何修复它? 有没有一种直接引用CDN的方法,所以我

  • 问题内容: 我想创建一个具有任意大小的div,然后在该div上显示一些内容。完全按照CSS中下面的div定位和调整叠加层大小的最佳方法是什么? 问题答案: 您可以使用将叠加层放置在div内部,然后在各个方向上将其拉伸,如下所示: CSS 已更新* 您只需要确保您的父div为其添加了属性,并为其设置了更低的属性。 为下面的评论者制作了一个可以在所有浏览器(包括IE7 +)上运行的演示。 从CSS中移

  • D:\gatsby站点 盖茨比起动器-default@0.1.0开发D:\gatsby站点 盖茨比发展 错误 加载插件“gatsby plugin sharp”时出现问题。也许你需要安装它的软件包?使用--verbose查看实际错误。 错误#10226 CONFIG 找不到在“D:\gatsby site\gatsby config.js”中声明的“gatsby plugin sharp”插件。

  • 我正在用android创建一款纸牌游戏(21点)。前两张卡是easy card1和card2,但是我想按一下“点击我”按钮,发一张新卡,并将其分配给card3、card4等。有没有任何方法可以做到这一点,而无需创建所需的最大变量数,并使用if-then语句检查它们是否被分配了值?