Ala*_*ALI 5 reactjs material-ui
我正在使用Material-UI Autcomplete组件(免费单人版)并且一切正常,直到我尝试更改文本的颜色(在TextField.
我的代码如下所示:
const moreClasses = {
label: { style: { color: 'blue' } },
input: {
style: {
color: 'red',
borderBottom: `1px solid green`
}
}
};
//...
<Autocomplete
//... classic props as in the official Doc
renderInput={params => <TextField
{...params}
label={'label'}
InputLabelProps={moreClasses.label}
InputProps={moreClasses.input} />
/>
Run Code Online (Sandbox Code Playgroud)
预期行为
当您开始输入时,您可以看到自动完成功能,并且您输入的文本应为红色。
实际行为
文本颜色为红色,但自动完成功能不再起作用。
我创建了这个实时运行示例来说明 3 个组件的问题:
仅文本字段(有效)
使用InputProps(作品)不改变颜色的自动完成
使用更改颜色的自动完成InputProps(不起作用)
笔记
通过设置InputLabelProps自动完成继续工作并更改标签的颜色(在我分享的示例中为蓝色)!所以我无法弄清楚为什么它在设置时不起作用InputProps。
关于这个问题的任何反馈?
Rya*_*ell 11
传递InputProps会导致问题,因为Autocomplete组件将 InputProps作为params传递到的一部分传递,TextField因此InputProps显式传递将完全替换InputPropsin params。
您可以通过结合params.InputProps您的附加InputProps代码来解决此问题,例如在以下代码中:
InputProps={{ ...params.InputProps, ...moreClasses.input }}
Run Code Online (Sandbox Code Playgroud)
Autocomplete也通过 InputLabelProps,因此即使它没有以明显的方式中断,您也应该对以下内容执行相同的操作InputLabelProps:
InputLabelProps={{ ...params.InputLabelProps, ...moreClasses.label }}
Run Code Online (Sandbox Code Playgroud)
相关答案:在 Material-ui Autocomplete 组件上设置文本颜色、轮廓和内边距
| 归档时间: |
|
| 查看次数: |
2210 次 |
| 最近记录: |