Мне нужно создать единственный блог клиента.Я следовал gatsby docs , чтобы создать сайт с аутентификацией пользователя, но мне нужно программно создавать PrivateRoutes на основе файлов уценки.
В настоящее время я использую этот компонент для визуализации PrivateRoutes, и они работают, но как мне создать PrivateRoute для динамически создаваемой страницы, если компонент не существует.Страницы создаются во время сборки с помощью API gatsby onCreatePage, но он использует только компонент шаблона.
<Layout>
<Router>
<PrivateRoute path="/app/profile" component={Profile} />
<PrivateRoute path="/app/contact" component={ContactPage} />
<Login path="/app/login" />
</Router>
</Layout>
)
Статические страницы Маршруты создаются следующим образом:
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)
}
}
И вот что я пытаюсь сделать для сообщений в блоге:
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(/^\/blog/)) {
page.matchPath = "/blog/*"
// Update the page.
createPage(page)
}
}