https://material-ui-pickers.dev/api/timepicker#keyboard-input和This question处理通过exports.createPages
api动态创建页面。
我的需求略有不同。我需要创建一些页面(即在构建过程中创建静态html文件),然后再创建其他“页面”,但在构建过程中不创建html文件。
我的用例是一个由cms填充的多语言,多国家站点。假设它具有类似
的路由结构# US site in english, spanish, german
# should SSR site.com/US/en
# should NOT SSR spanish or german
site.com/
US/
en/
es/
de/
# France site in french, english, swedish
site.com/
FR/
fr/
en/
sw/
每个国家/地区的第一语言是默认语言;这是唯一的静态呈现。用户可以通过react-router在前端上切换语言环境(即导航到其他路由),而无需刷新页面。因此,没有必要为site.com/FR/en
构建静态html文件。
似乎我需要使用this question来限制哪些页面仅在客户端。但是,此gatsby仍在创建页面(或者我可能误解了“页面”是什么)。
const defaultLocalesForCountry = {
US: 'en',
JP: 'en',
FR: 'fr',
DE: 'de',
KR: 'ko',
CN: 'zh-hant',
RU: 'ru',
ZZ: 'en'
};
exports.onCreatePage = async ({ page, actions }) => {
const { createPage } = actions;
const locale = page.path.split('/')[1];
if (defaultLocalesForCountry[COUNTRY] === locale) {
createPage(page);
}
};
也许我需要在浏览器中显式使用@reach-router
?