Reactjs (Material UI/Next.js)停止服务器端渲染的useStyles

Reactjs (Material UI/Next.js)停止服务器端渲染的useStyles,reactjs,material-ui,next.js,Reactjs,Material Ui,Next.js,我目前正在处理应用程序中的一个页面,该页面需要访问样式设置中的窗口对象 我理解,对于不应仅使用在服务器上呈现的组件,它可以做到这一点。但是,当从useStyles访问窗口时,会在render()函数之前调用它。这意味着只要点击classes=useStyles()就会出现错误:ReferenceError:window未定义就会持续出现 你知道如何阻止useStyles调用在服务器上渲染吗 谢谢 (回答我自己) 找到了一个在此上下文中有效的解决方案: 在应该可以访问全局窗口对象的组件周围使用 在

我目前正在处理应用程序中的一个页面,该页面需要访问样式设置中的窗口对象

我理解,对于不应仅使用
在服务器上呈现的组件,它可以做到这一点。但是,当从useStyles访问窗口时,会在
render()
函数之前调用它。这意味着只要点击
classes=useStyles()
就会出现错误:
ReferenceError:window未定义
就会持续出现

你知道如何阻止useStyles调用在服务器上渲染吗

谢谢

(回答我自己)

找到了一个在此上下文中有效的解决方案:

  • 在应该可以访问全局窗口对象的组件周围使用

  • 在对象上使用
    style={{}
    ,而不是使用
    useStyles()
    className
    的全局样式

  • 如果需要访问主题,请使用
    const-Theme=useTheme()
    importend from
    @material ui/styles