我在有菜单按钮的项目中使用react。
<a ref="btn" href="#" className="btn-menu show-on-small"><i></i></a>
还有一个Sidenav组件,例如:
<Sidenav ref="menu" />
我编写了以下代码来切换菜单:
class Header extends React.Component {
constructor(props){
super(props);
this.toggleSidenav = this.toggleSidenav.bind(this);
}
render() {
return (
<div className="header">
<i className="border hide-on-small-and-down"></i>
<div className="container">
<a ref="btn" href="#" className="btn-menu show-on-small"><i></i></a>
<Menu className="menu hide-on-small-and-down"/>
<Sidenav />
</div>
</div>
)
}
toggleSidenav() {
this.refs.btn.classList.toggle('btn-menu-open');
}
componentDidMount() {
this.refs.btn.addEventListener('click', this.toggleSidenav);
}
componentWillUnmount() {
this.refs.btn.removeEventListener('click', this.toggleSidenav);
}
}
事实是,这this.refs.sidenav
不是DOM元素,我无法在他上添加类。
有人可以向我解释如何Sidenav
像在按钮上一样在组件上切换类吗?
如果您想让React正确高效地渲染DOM,则必须使用组件的State来更新组件参数,例如Class Name。
更新:我更新了示例,以在单击按钮时切换Sidemenu。这不是必需的,但是您可以看到它如何工作。如我所示,您可能需要使用“ this.state”与“
this.props”。我习惯于使用Redux组件。
constructor(props){
super(props);
}
getInitialState(){
return {"showHideSidenav":"hidden"};
}
render() {
return (
<div className="header">
<i className="border hide-on-small-and-down"></i>
<div className="container">
<a ref="btn" onClick={this.toggleSidenav.bind(this)} href="#" className="btn-menu show-on-small"><i></i></a>
<Menu className="menu hide-on-small-and-down"/>
<Sidenav className={this.props.showHideSidenav}/>
</div>
</div>
)
}
toggleSidenav() {
var css = (this.props.showHideSidenav === "hidden") ? "show" : "hidden";
this.setState({"showHideSidenav":css});
}
现在,当您切换状态时,该组件将更新并更改sidenav组件的类名称。您可以使用CSS使用类名称显示/隐藏sidenav。
.hidden {
display:none;
}
.show{
display:block;
}
我正在尝试实现一个按钮来在明暗之间切换。我有一个文件批准器,看起来像这样。。 所以当我设置getTheme(true)时,它会触发黑暗主题,而getTheme(false)会触发光明主题。问题来了,我想在中的一个组件中插入一个切换按钮,允许用户在这两个主题之间切换。本质上,组件将控制AppRouter的状态。可能吗? 你知道我从哪里开始吗?我正在使用react钩子和类型脚本。我试过各种方法,但都没
我尝试了不同的方法。但是不要尝试切换这个css类。当我点击它时,书签应该会变成蓝色。到目前为止,我可以用onClick更改为false,但它不会切换回来。 这是ToggleBookmark组件集:
Nerv 提供了比 React 更好的浏览器兼容性和更高的性能,与此同时也不会放弃 React 庞大的生态系统。兼容 React 生态系统是我们开发 Nerv 的重要目标之一。 假设我们有这样一段代码: var React = require('react'); var ReactDOM = require('react-dom'); class MyComponent extends Reac
我想在这个例子中展开,我点击“show more”按钮,它滚动到div,我想向show more组件添加一个toggle类。
有什么方法可以改变HtmlUnit中带有会话的url吗? 我的案子就像下面这样, null 这在HtmlUnit本身可能吗? 我的示例代码
我有一个遗留日志类。它得到了一个静态记录器引用(名为Logger)和一系列静态方法。 每个方法接受一个字符串输入并将其写入系统。出来如果记录器不为null,则println和to记录器。 它有一个初始化记录器的构造函数。但是这个构造函数只有包的作用域,我很确定它不会在任何地方被调用。因此,logger始终为null,并且该类实际上只执行系统。出来普林顿 我想改变这一点,以便它可以在多线程应用程序中