javascript - 通过组件的 displayName 应用 CSS?
问题描述
召集所有专家!
我正在尝试添加一个类来禁用所有元素的后代只读,样式很好,但它不适用于所有后代或任何后代:
#ComponentDisplayName * {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
pointer-events: none;
}
该元素是我希望通过idcomponent
具有上述样式的元素,displayName
如下所示:div
import * as readOnly from './Permission.scss';
<div
id={component.type.displayName}
className={readOnly[component.type.displayName]}
>
{React.createElement(component, {
...component.className
})}
</div>
输出 HTML:
最终结果应该显示该组件具有对其所有子级的样式级联。
这甚至可能吗?
提前感谢所有参与者。
解决方案
看来我毕竟不需要使用 id 属性。将类规则定义为displayName
:
.ComponentDisplayName * {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
pointer-events: none;
}
然后你可以选择组件的样式displayName
如下:
import * as readOnly from './Permission.scss';
<div className={readOnly[component.type.displayName]}>
{React.createElement(component, {
...component.className
})}
</div>
最后,样式将应用于组件的所有后代元素。
推荐阅读
- mysql - 如何在 Workbench 中为 MySQL 表指定 DateTime()
- php - astream_context_create 中的承载授权
- python-2.7 - 在 python 中,我如何递归替换字符串中的 % 占位符
- angularjs - ng-src 使用随机生成器显示多个图像 - Ionic 1 / Cordova
- mongodb - 从 js 数组中排除不在我的集合中的项目
- java - 使用 modules=true 配置时,在 SpringBatch 中调用了两次作业
- java - 如何在活动中膨胀菜单
- linux-kernel - 用户缓冲区是否可以始终映射到连续的内核虚拟地址?
- python - 仅绘制正加权边 NetworkX
- amazon-web-services - INACTIVE 任务 - 如何杀死他们