当将Material-ui与NextJS一起使用时,为什么需要在componentDidUpdate或useEffect中删除jssStyles?

发布时间:2020-07-06 17:21

我已经阅读了SSR上的material-ui文档,并查看了他们的示例应用here,并将_document.js和_app.tsx配置为相同。

但是,无论出于何种原因,当我添加componentDidUpdate以删除jss样式时,我的应用程序样式都会中断:

componentDidMount() {
    const jssStyles = document.querySelector("#jss-server-side");

    if (jssStyles && jssStyles.parentNode) {
      jssStyles.parentNode.removeChild(jssStyles);
    }
}

因此,我想找出为什么首先需要执行此步骤,并且如果要删除它,我将面临哪些副作用?

尽管如此,我仍然得到Warning: Prop className did not match。还有其他解决方法吗?

回答1