reactjs - 如何在 Gatsby 中设置页面上方的状态
问题描述
考虑到当组件文件添加到文件夹时Gatsby会自动创建页面,我如何在页面上方创建一个高阶状态组件,以便我可以控制导航和其他常见通用组件的状态?
或者我们是否要在页面组件中创建单独的状态,即使这意味着重复?
谢谢
解决方案
您可以使用wrapPageElement
或wrapRootElement
api in gatsby-browser.js
andgatsby-ssr.js
来实现这一点。
wrapPageElement
用于持久 UI 组件,即在页面更改期间不应卸载的组件。例如,gatsby 自己的布局插件使用此 api 将整个页面内容包装在用户定义的布局组件中(这曾经是 gatsby 1 中的默认行为)。wrapRootElement
适用于数据提供者。例如,如果你想使用 redux或 styled-component 主题,你可以用这个 api 包装他们的 Provider 组件。
gatsby-browser.js
只会在浏览器中运行,而gatsby-ssr.js
在页面生成期间运行,因此您可能希望同时使用这两个 api。
推荐阅读
- xml - 使用 Ansible Playbook 修改 XML 文件中的数据不起作用
- swift - 设置转换后的 CALayer 的框架
- javascript - Chart.js 如何将附加值嵌入雷达图中的每个数据点
- html - 模态标题和文本不可见(引导程序)
- javascript - 使用 jQuery 在 EJS 生成的特定 Div 上应用函数
- azure-devops - 在 azure 中运行 NPM 工件的代码覆盖率报告
- django - 当轮数太高时如何将 django 用户迁移到 firebase?
- r - 如何根据具有多个频率的列的值提取子集?
- c# - 是否有可能在 Fluent Assertion 中返回通过和失败字段的列表?
- flutter - 处理对话时我的颤振应用程序出现故障