有没有办法在Gatsby js中使用materializecss?

时间:2018-09-26 23:54:09

标签: materialize gatsby

当我使用实体化CSS时,您必须使用其某些javascript函数才能使CSS正常工作

  componentDidMount() {
    //sidenav
    const sideNav = document.querySelector('.sidenav')
    const instance = M.Sidenav.init(sideNav, {})
  }

这些组件使用gatsby js中的窗口。 Gatsby js不允许这样做。有没有人找到解决方法?

2 个答案:

答案 0 :(得分:0)

Gatsby基于React,通常建议在React中编码时不要操纵主域。相反,您应该尝试使用references或在要使用的库中查找经过改编的react variant

答案 1 :(得分:0)

您可以使用以下方法初始化materialize-css组件:

if (typeof window !== 'undefined') {
  require('materialize-css/dist/js/materialize.min.js')
}

class Navigation extends Component {
  componentDidMount() {
    const elem = document.querySelector('.sidenav')
    window.M.Sidenav.init(elem, {})
}

我认为您也可以使用动态导入。

尽管如此,我仍然不了解如何实现wave.js效果。

相关问题