javascript - 如何基于布尔属性有条件地在 ReactJS 中应用嵌套的 SCSS 类?
问题描述
我有一个侧边栏导航元素,我试图在 React 中根据元素的位置应用 SCSS 样式。这是我目前从模块导入的 CSS 类的组合:
styles.main,
styles[position],
isOpen ? styles.opened : styles.closed,
SCSS 文件的片段:
.right {
top: 0;
right: 0;
.opened {
visibility: visible;
}
.closed {
visibility: hidden;
}
}
我试图弄清楚如何正确应用 SCSS 样式。元素继承了.main
类和根选择器.right
(包含top
andright
属性),但不继承.right.opened
and .right.closed
。
任何关于我哪里出错的帮助或指示将不胜感激。非常感谢!
解决方案
您不必继承样式,但可以组合它们。而不是:
.right {
top: 0;
right: 0;
.opened {
visibility: visible;
}
.closed {
visibility: hidden;
}
}
你所要做的:
.right {
top: 0;
right: 0;
&__opened {
visibility: visible;
}
&__closed {
visibility: hidden;
}
}
然后,您将应用诸如isOpen ? styles.right__opened : styles.right__closed
.
你可以查看我的演示。
推荐阅读
- wordpress - Wordpress 帖子/页面中的联系表 7 字段
- javascript - 如何限制上传多个扩展名的文件
- mysql - 如果条件不满足,则从其他表中获取值
- android - 单击更改列表视图中的项目
- linux - 如何在 automake 文件中检查它是否是 32/64 位操作系统?
- docker-compose - YAML、Docker Compose、空格和引号
- java - Why does @ApiModelProperty "name" attribute has no effect?
- webrtc - 使用 webrtc 在同一域上与他们各自的配对伙伴进行多对对等视频通话
- eiffel - Eiffel:类型转换运算符 ~ / 和附加语句有什么区别?
- python-3.x - Generate Random numbers from tuple list in Python