我正在尝试在我的 Gatsby 项目中构建一个注册确认页面。我从在这里创建的状态器开始https://github.com/DWboutin/gatsby-react-intl-starter。
在gatsby-node.js
中,我设置了一个 pageMatch 道具,让我的页面处理提供的 ID。(请注意,这value
是我的语言构建过程的一部分)
if (page.path.match(/^\/client-side-page/)) {
page.matchPath = (value !== baseLanguage) ? `/${value}/client-side-page/*` : '/client-side-page/*';
}
有了它,我可以访问页面/client-side-page/{MY ID}
。在该页面中,我用于reach/router
检索:id
路径中的 并仅在提供确认表单时才呈现确认表单。
一切正常,但是,当我直接加载页面时,它向我展示了 404 组件。
我试图设置一个默认的路由组件,当它找不到好的路径时。但它在显示它之前一直向我显示 404。
<Router basepath={`/${pageContext.matchPath.replace('/*', '/')}`}>
<ClientSignupDefault default />
<ClientSignup path=":id" />
</Router>
有没有办法做到这一点,或者我应该找到另一种方法来管理这个?
谢谢您的帮助!