reactstrap导航栏图标不显示

问题描述 投票:0回答:2

我试图做一个导航栏,以我的反应,应用程序,我用这个代码:ReactStrap navbar component

但是,导航栏图标不会出现在小型设备视图。

small devices navbar (icon is not show)

我NavBar.js

import React, {Component} from 'react';
import NavItems from "./NavItems";
import { Collapse, Navbar, NavbarToggler, NavbarBrand, Nav, NavItem, NavLink } from 'reactstrap';
class NavBar extends Component {
    constructor(props) {
        super(props);
        this.toggleNavbar = this.toggleNavbar.bind(this);
        this.state = {
             collapsed: true
        };
    }
    toggleNavbar() {
        this.setState({
            collapsed: !this.state.collapsed
        });
    }
    render() {
        return (
            <div>
                <Navbar color="faded" light>
                    <NavbarBrand href="/" className="mr-auto">Hoje para jantar</NavbarBrand>
                    <NavbarToggler onClick={this.toggleNavbar} className="mr-2" />
                    <Collapse isOpen={!this.state.collapsed} navbar>
                        <Nav navbar>
                            <NavItems>
                                <NavLink href="/components/">Components</NavLink>
                            </NavItems>
                        </Nav>
                    </Collapse>
                </Navbar>
            </div>
        );
    }
}
export default NavBar;
css twitter-bootstrap reactjs reactstrap
2个回答
2
投票

我猜你缺少在导航栏组件展开的道具。

如果您设置扩展道具“LG”例如,导航栏将增加对设备的图标比“LG”较小的宽度,比1200像素小:


<Navbar color="light" light expand="lg">...</Navbar

您也可以设定扩展道具“MD”或“SM”。


1
投票

我尝试使用create-react-app并整理出以下package.json再现您的问题

{
  "name": "so2",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "bootstrap": "^4.0.0-beta.2",
    "jquery": "^3.2.1",
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "react-popper": "^0.7.4",
    "react-scripts": "1.0.17",
    "reactstrap": "^5.0.0-alpha.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

我NavBar.js的版本,这是你的一个副本,而不线2,和25-27:

import React, {Component} from 'react';
// import NavItems from "./NavItems";
import { Collapse, Navbar, NavbarToggler, NavbarBrand, Nav, NavItem, NavLink } from 'reactstrap';
class NavBar extends Component {
    constructor(props) {
        super(props);
        this.toggleNavbar = this.toggleNavbar.bind(this);
        this.state = {
            collapsed: true
        };
    }
    toggleNavbar() {
        this.setState({
            collapsed: !this.state.collapsed
        });
    }
    render() {
        return (
            <div>
                <Navbar color="faded" light>
                    <NavbarBrand href="/" className="mr-auto">Hoje para jantar</NavbarBrand>
                    <NavbarToggler onClick={this.toggleNavbar} className="mr-2" />
                    <Collapse isOpen={!this.state.collapsed} navbar>
                        <Nav navbar>
                            {/*<NavItems>*/}
                                {/*<NavLink href="/components/">Components</NavLink>*/}
                            {/*</NavItems>*/}
                        </Nav>
                    </Collapse>
                </Navbar>
            </div>
        );
    }
}
export default NavBar;

而得到这个

Screenshot of chrome devtools responsive view

在我自己的经验,我已经注意到,这是很容易通过实验或实施所需的更改引起的CSS冲突。我会做的是考验你对一个新的项目所做的任何修改CSS,发现故障,然后在原来的(工作)项目解决它。

我希望这可以帮助你,因为我只花了整个上午试图实验多个CSS文件和反应的组分。我希望我能提供更多的帮助,但我不能对尚未发表评论。祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.