javascript - Materializecss 选项卡不适用于 React(npm import)

标签 javascript reactjs materialize

我一直在查看其他人对我的问题的解决方案和 Materializecss 文档,但我无法在 javascript 部分下获取 MaterializeCss 选项卡和其他组件以在我的 React 项目中工作。

import M from 'materialize-css';

componentDidMount() {
  let el = document.querySelector('.tabs');
  let instance = M.Tabs.init(el, {});
}

render() {
  return (
    <div className="App">
      <div className="row">
        <div className="col s12">
          <ul className="tabs">
            <li className="tab col s3">
              <a href="#test1">Test 1</a>
            </li>
            <li className="tab col s3">
              <a className="active" href="#test2">
                Test 2
              </a>
            </li>
            <li className="tab col s3 disabled">
              <a href="#test3">Disabled Tab</a>
            </li>
            <li className="tab col s3">
              <a href="#test4">Test 4</a>
            </li>
          </ul>
        </div>
        <div id="test1" className="col s12">
          Test 1
        </div>
        <div id="test2" className="col s12">
          Test 2
        </div>
        <div id="test3" className="col s12">
          Test 3
        </div>
        <div id="test4" className="col s12">
          Test 4
        </div>
      </div>
    </div>
  );
}

我也尝试过 Jquery 实现,但也不起作用。只需将脚本标签和选项卡代码放入我的index.html 文件的正文中即可,但非常有限。我需要使用 MaterializeCss,因此 React-materialize 不是一个选项。

很想就此获得一些建议。

最佳答案

它也可以在materializeCSS中实现。 为此,您需要执行npm install Materialize-css@next。之后,您需要在组件 JS 文件中导入 Materialize-css。

要使用 Javascript Materialize-CSS 组件,必须在 componentDidMount() 中创建这些组件的引用,然后才能在 ref 中使用它>.

Working Demo - Tabs MaterializeCSS

您可以从此存储库中检查 React 中的其他 Materialise CSS 组件 - GermaVinsmoke - Reactize

import React, { Component } from "react";
import M from "materialize-css";
import "materialize-css/dist/css/materialize.min.css";

class Tabs extends Component {
  componentDidMount() {
    M.Tabs.init(this.Tabs);
  }
  render() {
    return (
      <>
        <ul
          ref={Tabs => {
            this.Tabs = Tabs;
          }}
          id="tabs-swipe-demo"
          className="tabs"
        >
          <li className="tab col s3">
            <a href="#test-swipe-1">Test 1</a>
          </li>
          <li className="tab col s3">
            <a href="#test-swipe-2">Test 2</a>
          </li>
          <li className="tab col s3">
            <a href="#test-swipe-3">Test 3</a>
          </li>
        </ul>

        <div id="test-swipe-1" className="col s12 blue">
          Test 1
        </div>
        <div id="test-swipe-2" className="col s12 red">
          Test 2
        </div>
        <div id="test-swipe-3" className="col s12 green">
          Test 3
        </div>
      </>
    );
  }
}

export default Tabs;

关于javascript - Materializecss 选项卡不适用于 React(npm import),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55069297/

相关文章:

javascript - MutationObserver 观察样式变化仅触发一次

javascript - 使用弹出窗口在 "contenteditable"div 中插入图像

javascript - 使用 Javascript 检索绝对文件路径

javascript - react : Getting active element name from <ul> in to the header

css - Sidenav materializecss 窗口变暗

javascript - 旋转按钮 [HTML] [JS]

javascript - 单击显示当前图像放大

reactjs - 我的简单的react.js应用程序是我手机上的空白页面(但可以在我的台式机和平板电脑上运行)。为什么?

javascript - 双箭头出现在选择物化上

javascript - Materialize:未捕获类型错误:$(...).scrollSpy 不是函数