首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React + MUI + TextField

React + MUI + TextField
EN

Stack Overflow用户
提问于 2022-07-20 16:28:33
回答 2查看 65关注 0票数 0

我目前正在尝试更改MUI TextField (文本和边框)的默认颜色。我在官方网站上提到的几种方法都失败了。在我试验过的所有解决方案中,最有希望的是这个:

代码语言:javascript
复制
<TextField InputLabelProps={{ style: { color: 'white' } }} ...>

此解决方案在未编辑时更改文本的颜色。一旦我编辑文本,颜色就会得到它原来的值。我也尝试过这个解决方案,但没有成功:

代码语言:javascript
复制
const theme = createTheme({
  components: {
    MuiTextField: {
      defaultProps: {
        style: { color: 'white'}
      }
    }
  }
});

在应用这个主题之后,我没有做任何改变。有人做过同样的实验吗?致以问候。

EN

回答 2

Stack Overflow用户

发布于 2022-07-20 16:57:58

您可以使用MUI调色板:

代码语言:javascript
复制
"primary" | "secondary" | "error" | "info" | "success" | "warning"

<TextField
  color="primary"
/>

这些颜色可以用ThemeProvider覆盖,并用作边框颜色 onFocus。

代码语言:javascript
复制
const getMuiTheme = () =>
  createTheme({
    palette: {
      primary: {
        main: "#FF0000" // red
      },
      secondary: {
        main: "#00FF00" // green
      }
    }
  });


<ThemeProvider theme={getMuiTheme()}>
  <TextField />
  ...
</ThemeProvider>

然后,您可以通过在内部使用sx支柱来处理sx输入颜色

代码语言:javascript
复制
sx={{
  input: {
    color: getMuiTheme().palette.secondary.main
  }
}}

现场演示

编辑:如果您希望边框永久着色,无论焦点还是悬停,都可以将其添加到现有的sx支柱中:

代码语言:javascript
复制
sx={{
  input: {
    color: getMuiTheme().palette.secondary.main
  },
  ".MuiOutlinedInput-notchedOutline": {
    borderColor: `${getMuiTheme().palette.secondary.main} !important`
  }
}}

票数 0
EN

Stack Overflow用户

发布于 2022-07-21 10:13:01

这个解决方案解决了我的问题:

代码语言:javascript
复制
const color = '#FFF';

const AppTextField = styled(TextField)({
    '& label': {
        color: color,
    },
    '& label.Mui-focused': {
        color: color,
    },
    '& .MuiInput-underline:after': {
        borderBottomColor: color
    },
    '& .MuiOutlinedInput-root': {
        color: color,
        '& fieldset': {
            borderColor: color
        },
        '&:hover fieldset': {
            borderColor: color
        },
        '&.Mui-focused fieldset': {
            borderColor: color
        }
    }
});

谢谢你的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73055160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档