我已经使用此 链接 设置了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语句检查它们是否被分配了值?