我正在尝试将导航栏设置为我的反应应用程序,而我正在使用此代码: 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;
答案 0 :(得分: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版本,whcih是你的副本,没有第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;
得到了这个
根据我自己的经验,我注意到通过试验或实现所需的更改很容易导致css冲突。我要做的是测试你在新项目中所做的任何css更改,发现问题,然后将其修复到原始(工作)项目中。
我希望这对你有所帮助,因为我整个上午都在尝试尝试多个css文件并对组件做出反应。我希望我能提供更多帮助,但我还不允许发表评论。祝你好运!
答案 1 :(得分:0)
我想您在Navbar组件中缺少扩展道具。
例如,如果将扩展属性设置为“ lg”,则导航栏将为宽度小于“ lg”(小于1200px)的设备添加图标:
<Navbar color="light" light expand="lg">...</Navbar
您还可以将扩展道具设置为“ md”或“ sm”。