reactjs - 使用 React 更改点击宽度
问题描述
我正在尝试实现一个侧面导航栏,更改宽度以显示和隐藏侧面导航栏。无论如何,我无法使 openNav 功能正常工作。如果我将初始状态设置为 250 像素,它会显示导航栏并且关闭功能有效(它将宽度设置为 0)。为什么菜单按钮不起作用?我错过了什么?
class SideNav extends Component {
constructor(props){
super(props);
this.state = {
navwidth: 0
};
this.openNav = this.openNav.bind(this)
this.closeNav = this.closeNav.bind(this)
}
openNav() {
this.setState({
navwidth: '250 px'
});
}
closeNav() {
this.setState({
navwidth: 0
});
}
render(){
return(
<>
<button onClick={this.openNav}>Menu</button>
<div id="mySidenav" className='sidenav' style={{width: `${this.state.navwidth}`}}>
<a className="closebtn" onClick={this.closeNav}>×</a>
<a href="#">Find data</a>
<a href="#">Visualize Data</a>
<a href="#">About</a>
</div>
</>
)
}
}
class Header extends Component {
render(){
return(
<SideNav/>
)
}
}
export default Header;
解决方案
修改了你的代码,
class SideNav extends Component {
constructor(props) {
super(props);
this.state = {
navwidth: 0
};
}
openNav = () => {
this.setState({
navwidth: '250px'
});
}
closeNav = () => {
this.setState({
navwidth: '0px'
});
}
render = () =>
<>
<button onClick={this.openNav}>Menu</button>
<div id="mySidenav" className='sidenav' style={{ width: this.state.navwidth }}>
<a className="closebtn" onClick={this.closeNav}>×</a>
<a href="#">Find data</a>
<a href="#">Visualize Data</a>
<a href="#">About</a>
</div>
</>
}
推荐阅读
- javascript - 在两个数字之间生成 10 的间隔倍数
- google-cloud-firestore - SwiftUI 列表闪烁我的数据,然后使用 ObservableObject 显示一个空列表以获取 Firestore 数据
- php - 使用更新查询时未定义的索引
- reactjs - NativeBase 的“图标和扩展图标样式”未显示
- c - 关于 C 中的 LinkedList 类型参数的一些混淆
- python - 有没有办法在 altair 图表上添加单个注释?
- ios - 可编码协议错误“给定的数据不是有效的 JSON。”
- reactjs - 使用 ra-data-json-server 不会触发 getManyReference
- python - 连接到 hadoop 数据库表
- python - 有没有办法用 gspread 更新谷歌表格过滤器视图范围?