当前位置: 代码迷 >> JavaScript >> 具有Material-UI的盖茨比:为什么选择createPageContext?
  详细解决方案

具有Material-UI的盖茨比:为什么选择createPageContext?

热度:79   发布时间:2023-06-13 11:34:15.0

我正在查看github上页面上的gatsby示例,并希望解释一些代码行。

在文件

export default function getPageContext() {
  // Make sure to create a new context for every server-side request so that data
  // isn't shared between connections (which would be bad).
  if (!process.browser) {
    return createPageContext();
}

为什么在连接之间共享数据?

我可能会在Material-UI文档中的某个地方收到有关此行为的警告,但找不到它。 这似乎是如此重要,我不知道为什么将其埋在代码示例中。

这个似乎有关,但是链接的github问题+讨论并不能帮助我理解为什么页面上下文中存在此变通方法。

谢谢!

PageContext中作为例子所示的实施有一个适当的CSS注入顺序列出 :

由Material-UI注入的CSS用来设置组件的样式具有最高的特异性,这是因为注入在的底部以确保组件始终正确呈现。

重要的一点在 :

  return (
    <JssProvider generateClassName={this.muiPageContext.generateClassName}>
      {/* MuiThemeProvider makes the theme available down the React
          tree thanks to React context. */}
      <MuiThemeProvider
        theme={this.muiPageContext.theme}
        sheetsManager={this.muiPageContext.sheetsManager}
      >
        {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}
        <CssBaseline />
        <Component {...this.props} />
      </MuiThemeProvider>
    </JssProvider>
    );

该可让您深入了解如果不使用pageContext会发生什么情况。

  相关解决方案