【发布时间】:2018-12-01 16:19:56
【问题描述】:
我是 reactjs 新手,无法在点击事件时切换 div 元素的类。
下面是我想要实现的,
我有一个动态创建的 div 元素,如下所示,
constructor(props) {
super(props);
this.element = document.createElement('div');
this.element.className = 'div_class';
}
我在组件挂载和卸载时添加和删除 div 元素,如下所示,
componentDidMount() {
notifications_root.appendChild(this.element);
ReactDOM.render(<SvgSome onClick={this.handle_dialog_close} width="36"
style={{position:'absolute',cursor: 'pointer', right: '250px', top:
'105px'}} />, this.element);
}
componentWillUnmount() {
this.element.classList.remove('hidden');
root.removeChild(this.element);
}
handle_dialog_close = () => {
this.element.classList.add('hidden');
};
我还在单击 svg 元素时向 div 元素添加和删除类“隐藏”。 但是,它确实在单击 svg 元素时隐藏了 div 元素,但没有再次显示 div 元素......我猜 div 元素类设置为隐藏它不会显示。有人可以帮我知道问题出在哪里。下面是css代码。谢谢。
.div_class {
width:800px;
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
margin-top: 100px;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
&.hidden {
display: none;
}
}
【问题讨论】:
-
你能解释一下为什么你不使用核心反应部分,比如
state和props吗?在 componentDidMount 方法中使用 React.Render 非常少见。我认为 React 鼓励响应式编程。
标签: javascript html css reactjs