简体   繁体   English

react-bootstrap 导航栏无法在 React js 中正确呈现

[英]react-bootstrap Navbar not rendering properly in React js

I am using bootstrap 4 with reactjs.我正在使用带有 reactjs 的 bootstrap 4。 Using react-bootstrap module, trying to render the Navbar , but somehow , it is not rendering properly.使用 react-bootstrap 模块,尝试渲染 Navbar ,但不知何故,它无法正确渲染。 i am using bootstrap 4 syntax in the code but not sure whether any module/lib is using any bootstrap syntax 3我在代码中使用了 bootstrap 4 语法,但不确定是否有任何模块/lib 正在使用任何 bootstrap 语法 3

here is the code (App.js) :这是代码(App.js):

import React, { Component } from 'react';
import Header from './Components/HeaderComponents/header';
import Footer from './Components/FooterComponents/footer';
import Homepage from './Components/pages/homePage';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import CustNavbar from './Components/pages/navbar';
import About from './Components/pages/About';

import News from './Components/pages/News';

import ReactBootstrap, { Navbar, Nav, NavItem, Jumbotron, Container, Row, Column, Image, Button } from 'react-bootstrap';
import './Assets/css/default.min.css';

class App extends Component {
  render() {
    return (

      <Router>
      <div className="App">
      <Navbar />
      <Route exact path="/" component={Homepage} />
      <Route path="/about" component={About} />
      <Route path="/news" component={News} />
      </div>
      </Router>
    );
  }
}


export default App;

and the navbar.js :和 navbar.js :

import React, { Component } from 'react';
import ReactBootstrap, { Navbar, Nav, NavItem } from 'react-bootstrap';
import { Link } from 'react-router-dom';

class CustNavbar extends Component {
render() {
  return (

<Navbar default collapseOnSelect>
<Navbar.Header>
<Navbar.Brand>
  <Link to="/">CodeLife</Link>
</Navbar.Brand>
<Navbar.Toggle />
  </Navbar.Header>
  <Navbar.Collapse>
<Nav pullRight>
<NavItem eventKey={1} componentClass={Link} to="/">
Home
</NavItem>

<NavItem eventKey={2} componentClass={Link} to="/about">
About
</NavItem>
<NavItem eventKey={3} componentClass={Link} to="/news">
News
</NavItem>
</Nav>

</Navbar.Collapse>

</Navbar>

)
}
}

export default CustNavbar;

what is happening怎么了

now the issue, there is no any compilation error , but somehow , Navigation bar is not rendering properly.现在的问题是,没有任何编译错误,但不知何故,导航栏未正确呈现。 Not sure whether the issue with version syntax or the implementation itself.不确定是版本语法的问题还是实现本身的问题。 please suggest请建议

what is expected什么是预期

Navigation bar should appear in the homepage before Grid/container导航栏应出现在主页中的网格/容器之前

EDIT 1: I have modified the code as suggested .编辑 1:我已按照建议修改了代码。 please below :请在下面:

App.js应用程序.js

import React, { Fragment, Component } from 'react';
import Header from './Components/HeaderComponents/header';
import Footer from './Components/FooterComponents/footer';
import Homepage from './Components/pages/homePage';
import CorporateTraining from './Components/pages/corporateTraining';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import CustNavbar from './Components/pages/navbar';
import About from './Components/pages/About';

import News from './Components/pages/News';

import ReactBootstrap, { Navbar, Nav, NavItem, Jumbotron, Container, Row, Column, Image, Button } from 'react-bootstrap';
import './Assets/css/default.min.css';

class App extends Component {
  render() {
    return (
    <Fragment>
    <Navbar />
      <div className="App">
      <Router>
      <Route exact path="/" component={Homepage} />
      <Route path="/about" component={About} />
      <Route path="/news" component={News} />

      </Router>
      </div>
      </Fragment>
    );
  }
}


export default App;

Regards,问候,

I'm not really sure as its too unclear.我不太确定,因为它太不清楚了。 But try moving your navbar on top of router as i assume that className App have styling in them.但是尝试将导航栏移到路由器顶部,因为我假设 className App 具有样式。 Let me know让我知道

import React, { Fragment, Component } from 'react';
        ...

        return (
             <Fragment>
                  <Navbar />
                  <div className="App">
                    <Router>
                    <Switch>
                      <Route exact path="/" component={Homepage} />
                      <Route path="/about" component={About} />
                      <Route path="/news" component={News} />
                    </Switch
                    </Router>
                  </div>
          </Fragment>
    )

Don't forget to add Fragment不要忘记添加Fragment

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM