[英]How to conditionally apply nested SCSS classes in ReactJS based on a boolean prop?
我有一个侧边栏导航元素,我试图在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
和right
属性),而不是那些用于.right.opened
和.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
这样的类isOpen ? styles.right__opened : styles.right__closed
isOpen ? styles.right__opened : styles.right__closed
。
你可以查看我的演示 。
使用classnames实用程序,它是当前推荐的在ReactJs中处理条件CSS类名的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.