代码之家  ›  专栏  ›  技术社区  ›  arunmmanoharan

NavBar在Reactjs中无法运行MDBootstrap

  •  1
  • arunmmanoharan  · 技术社区  · 7 年前

    我尝试从MDBoostrap(mdbreact)实现一个导航栏,但由于某些原因,我无法让它工作。

    这是我的索引。js文件看起来像。

    import React from 'react';
    import ReactDOM from 'react-dom';
    import {BrowserRouter as Router, Route, Switch} from 'react-router-dom';
    import {Provider} from 'react-redux';
    import './index.scss';
    import NavBar from './components/NavBar/NavBar';
    import App from './components/App/App';
    import Video from './components/Video/Video';
    import createStore from './store';
    import * as serviceWorker from './serviceWorker';
    
    const store = createStore();
    
    ReactDOM.render(
        <Provider store={store}>
            <Router>
                <NavBar/>
                <Switch>
                    <Route exact path="/" component={App}/>
                    <Route exact path="/images" component={App}/>
                    <Route exact path="/video" component={Video}/>
                </Switch>
            </Router>
        </Provider>, document.getElementById('root'));
    

    导航栏。jsx:

    import React, {Component} from 'react';
    import {
        MDBCollapse,
        MDBDropdown,
        MDBDropdownItem,
        MDBDropdownMenu,
        MDBDropdownToggle,
        MDBFormInline,
        MDBNavbar,
        MDBNavbarBrand,
        MDBNavbarNav,
        MDBNavbarToggler,
        MDBNavItem,
        MDBNavLink
    } from 'mdbreact';
    import {BrowserRouter} from 'react-router-dom';
    
    class NavBar extends Component {
        state = {
            isOpen: false
        };
    
        toggleCollapse = () => {
            this.setState({isOpen: !this.state.isOpen});
        };
    
        render() {
            return (
                <BrowserRouter>
                    <MDBNavbar color="indigo" dark expand="md">
                        <MDBNavbarBrand>
                            <strong className="white-text">Navbar</strong>
                        </MDBNavbarBrand>
                        <MDBNavbarToggler onClick={this.toggleCollapse}/>
                        <MDBCollapse id="navbarCollapse3" isOpen={this.state.isOpen} navbar>
                            <MDBNavbarNav left>
                                <MDBNavItem active>
                                    <MDBNavLink to="#!">Home</MDBNavLink>
                                </MDBNavItem>
                                <MDBNavItem>
                                    <MDBNavLink to="#!">Features</MDBNavLink>
                                </MDBNavItem>
                                <MDBNavItem>
                                    <MDBNavLink to="#!">Pricing</MDBNavLink>
                                </MDBNavItem>
                                <MDBNavItem>
                                    <MDBDropdown>
                                        <MDBDropdownToggle nav caret>
                                            <span className="mr-2">Dropdown</span>
                                        </MDBDropdownToggle>
                                        <MDBDropdownMenu>
                                            <MDBDropdownItem href="#!">Action</MDBDropdownItem>
                                            <MDBDropdownItem href="#!">Another Action</MDBDropdownItem>
                                            <MDBDropdownItem href="#!">Something else here</MDBDropdownItem>
                                            <MDBDropdownItem href="#!">Something else here</MDBDropdownItem>
                                        </MDBDropdownMenu>
                                    </MDBDropdown>
                                </MDBNavItem>
                            </MDBNavbarNav>
                            <MDBNavbarNav right>
                                <MDBNavItem>
                                    <MDBFormInline waves>
                                        <div className="md-form my-0">
                                            <input className="form-control mr-sm-2" type="text" placeholder="Search"
                                                   aria-label="Search"/>
                                        </div>
                                    </MDBFormInline>
                                </MDBNavItem>
                            </MDBNavbarNav>
                        </MDBCollapse>
                    </MDBNavbar>
                </BrowserRouter>
            );
        }
    }
    
    export default NavBar;
    

    这是我得到的错误: enter image description here

    如何在全球范围内访问导航栏?我听到一个错误,说 "You should not use <Route> or withRouter() outside a <Router>" .

    请给出建议。

    0 回复  |  直到 6 年前