javascript - 如何在reactjs中将类切换到div元素?
问题描述
我是 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;
}
}
解决方案
您可以做的一件事是创建一个变量(如果您想要更多类,则创建一个数组),然后有条件地添加。
Render(){
Const divClasses =[‘My-Div’, ‘Container’]
Return(
<div className=
{/*condition*\ && divClasses>
//content
</div>
)
}
因此,将根据条件添加类。此外,您可以添加一个处理程序来控制条件。
推荐阅读
- vue.js - 将路由器链接添加到 Vuetify 树视图
- html - Elastic Beanstalk 上对 index.html 的更改
- ios - 使用firebaseUI ios swift进行电话身份验证
- c - strcpy 在特定内存地址返回值加垃圾
- python - 执行 NER(命名实体识别)的过程 - NLP
- uwp - 在外围设备端断开连接后(重新)连接 - UWP
- python - 如何在 Pandas 中过滤带有条件空白字段的记录
- video - FFmpeg 丢失视频文件的转换
- tensorflow.js - 如何检查 tfjs 模型是否正确加载到浏览器
- r - 一个运行完全相同的数据,另一个不在 R 中类似 lm() 的函数中运行