javascript - 在 Material-ui 中使用 mixins 自定义 React 中的组件
问题描述
我正在尝试使用 React 在 Material-ui 中自定义一个文本字段组件。
根据此页面的信息:
要自定义文本字段任何部分的颜色,请使用以下 mixins。我们建议您在 CSS 选择器中应用这些 mixin,例如 .foo-text-field:not(.mdc-text-field--focused) 以选择未聚焦的文本字段,以及 .foo-text-field.mdc-text-field- -focused 以选择您的重点文本字段。要更改文本字段的无效状态,请使用 CSS 选择器应用这些 mixin,例如 .foo-text-field.mdc-text-field--invalid。
我尝试使用这个 mixin 来改变边框的颜色:
mdc-text-field-outline-color($color): Customizes the border color of the outlined text field.
但是,我不知道如何使用它。我安装了 scss,但我没有使用 scss 将颜色设置为红色的语法。
@mixin mdc-text-field-outline-color($color) {
}
似乎我是从这样的事情开始的,但如果没有具体的例子,我不确定如何继续前进。
解决方案
这将对您有所帮助。您可以colors
作为map
. 或者传递单一的颜色和用途darken
和lighten
功能;您可以选择如何传递属性值。
示例 1
@mixin mdc-text-field-outline-color() {
& {
&.mdc-text-field--focused {
border-color: blue;
}
&.mdc-text-field--invalid {
border-color: gray;
}
&:not(.mdc-text-field--focused) {
border-color: black;
}
}
}
.foo-text-field {
@include mdc-text-field-outline-color();
border-width: 2px;
border-style: solid;
}
示例 2
@mixin mdc-text-field-outline-color($color) {
& {
&:not(.mdc-text-field--focused) {
border-color: #{$color};
}
&.mdc-text-field--focused {
border-color: darken($color, 20%);
}
&.mdc-text-field--invalid {
border-color: lighten($color, 20%);
}
}
}
.foo-text-field {
@include mdc-text-field-outline-color(#C4C4);
border-width: 2px;
border-style: solid;
}
推荐阅读
- reactjs - package.json 中的 Jest 配置失败
- javascript - 尽管 Promise.resolve(),但 promise catch 块中的 Javascript 重试异步函数始终运行
- c# - 将xml插入/替换到Xdocument的指定节点
- php - 从外部类调用具有依赖项 PHP 的方法
- api - 基于时间的端到端测试
- hibernate - Hibernate QL(通常是 SQL)子句中的 1:n 关系
- shell - 使用 if 条件执行 Make File 时出错
- data-binding - Angular 6 [(ngModel)] 在视图中不改变组件中的变量
- reactjs - 反应导航 | [eslint] 解析错误:意外令牌 = | 反应原生
- azure - Azure Docker 撰写因环境部分而失败