当前位置: 首页 > 面试题库 >

如何在带有Bootstrap的Reactjs中使用数据切换崩溃?

尚俊楠
2023-03-14
问题内容

我在Reactjs中使用纯Bootstrap,并且已经使用Bootstrap组件构建了一个navBar,但是我面临的问题是数据切换折叠不起作用。

当我缩小显示视图的大小时,将显示汉堡图标,但是当我单击它时,则什么也没有发生。虽然它可以与纯HTML和JS完美配合,但不能与reactjs配合使用。

这是index.js文件

import '../node_modules/bootstrap/dist/css/bootstrap.min.css';
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';

ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();

这是app.js

import React, { Component } from 'react';
import './App.css';
import NavBar from './components/navBar/navBar';

class App extends Component {
  render() {
    return (
      <div>
      <NavBar />
    </div>
    );
  }
}

export default App;

这是NavBar.js文件

import React, { Component } from 'react';

class NavBar extends Component {
  render() {
    return (
      <div>

        <nav className="navbar navbar-expand-lg navbar-light bg-light">
          <a className="navbar-brand" href="/">Navbar</a>
          <button className="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
            <span className="navbar-toggler-icon"></span>
          </button>
          <div className="collapse navbar-collapse" id="navbarNavAltMarkup">
            <div className="navbar-nav">
              <a className="nav-item nav-link active" href="/">Home <span class="sr-only">(current)</span></a>
              <a className="nav-item nav-link" href="/">Features</a>
              <a className="nav-item nav-link" href="/">Pricing</a>
              <a className="nav-item nav-link" href="/">logout</a>
            </div>
          </div>
        </nav>
      </div>
    );
  }
}

export default NavBar;

这是我用于navBar的完整代码。


问题答案:

Bootstrap菜单切换是一种JS功能,将Bootstrap的JS部分与ReactJS混合使用不是一个好主意,因为这两个库都操纵DOM,这可能会导致更大的问题。

我建议实现所需的小功能,大多数菜单切换只是类切换。

import React, { Component } from "react";

export default class Menu extends Component {

  constructor(props) {
    super(props);
    this.state = {
      menu: false
    };
    this.toggleMenu = this.toggleMenu.bind(this);
  }

  toggleMenu(){
    this.setState({ menu: !this.state.menu })
  }

  render() {

  const show = (this.state.menu) ? "show" : "" ;

  return (

    <nav className="navbar navbar-expand-lg navbar-light bg-light">
      <a className="navbar-brand" href="/">Navbar</a>
      <button className="navbar-toggler" type="button" onClick={ this.toggleMenu }>
        <span className="navbar-toggler-icon"></span>
      </button>
      <div className={"collapse navbar-collapse " + show}>
        <div className="navbar-nav">
          <a className="nav-item nav-link active" href="/">Home <span class="sr-only">(current)</span></a>
          <a className="nav-item nav-link" href="/">Features</a>
          <a className="nav-item nav-link" href="/">Pricing</a>
          <a className="nav-item nav-link" href="/">logout</a>
        </div>
      </div>
    </nav>

  );
  }
}


 类似资料:
  • 问题内容: 我正在尝试在我的角度应用程序中包括以下Bootstrap可折叠面板。但是,当我单击“展开”时,似乎可以看到角度,然后将其重定向到主页,而不是折叠面板。我的路由看起来像这样,我认为是引起问题的原因。有什么建议? 面板- 问题答案: 作为一个类似的问题mentionned,简单地由数据目标属性改变您的href

  • 我想在Angular CLI创建的Angular4项目中使用引导4和SASS。 我尤其需要: 使用SASS而不是CSS作为全局样式和组件样式 将Bootstrap SASS源代码与我的自定义*. scss样式一起编译 确保我的自定义样式覆盖了Bootstrap源,这样我就可以在需要时覆盖Bootstrap源,而无需编辑Bootstrap源本身(便于升级Bootstrap源版本) 添加手表

  • 我正在尝试在表FORNMAT中显示数据。数据来自API。我需要显示表一旦数据接收从api。我正在使用类组件。下面我给出了尝试的东西。 //下面是我的jsx //下面是我从api获取数据的函数 //下面是我的api输出

  • 问题内容: 我是ReactJS的新手。以前,我使用jQuery设置所需的任何动画或功能。但是现在我正在尝试使用ReactJS并最小化jQuery的使用。 我的情况是: 我正在尝试使用ReactJS构建手风琴。 使用JQuery : 我的问题: 我该如何使用ReactJS? 问题答案: 您应该尝试避免在ReactJS中使用jQuery。但是,如果您真的想使用它,则可以将其放入组件的component

  • 下面是logcat: 12-15 13:15:30.763 295 33-29533/com.example.hieul.hismartversearch e/androidruntime:致命异常:main process:com.example.hieul.hismartversearch,pid:29533 java.lang.nullpointerexception:试图在Android.

  • 问题内容: 我有以下数据框: 我尝试过数据透视表 但出现以下错误: 数据透视表的任何替代选择吗? 问题答案: 您可以用来转置数据框。这将数据框切换为圆形,以便行变为列。 您也可以使用。