Как изменить цвет компонента <DatePicker />

Я хочу изменить цвет подчеркивания компонента DatePicker . Вот моя попытка сделать это

      import React from 'react'
import PropTypes from 'prop-types'
import { DatePicker as MuiDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'
import { makeStyles } from '@material-ui/core/styles'
import DateFnsUtils from '@date-io/moment' // choose your lib
import { usePreset } from '../'

const presets = {
    repainted: {
        InputProps: {
            className: 'test',
            underColor: 'yellow',
            style: {
                color: 'red',
                borderBottomColor: 'red',
                '&::before': {  // removes underline
                    color: 'yellow',
                    borderBottomColor: 'yellow',
                    background: 'yellow',
                },
                '&input::before': {  // removes underline
                    color: 'yellow',
                    borderBottomColor: 'yellow',
                    background: 'yellow',
                },
                '&input:before': {  // removes underline
                    color: 'yellow',
                    borderBottomColor: 'yellow',
                    background: 'yellow',
                },
                'input::before': {  // removes underline
                    color: 'yellow',
                    borderBottomColor: 'yellow',
                    background: 'yellow',
                },
                'input:before': {  // removes underline
                    color: 'yellow',
                    borderBottomColor: 'yellow',
                    background: 'yellow',
                },
                '&:before': {  // removes underline
                    color: 'yellow',
                    borderBottomColor: 'yellow',
                    background: 'yellow',
                },
                '&&:before': {  // removes underline
                    color: 'yellow',
                    borderBottomColor: 'yellow',
                    background: 'yellow',
                },
                '&&::before': {  // removes underline
                    color: 'yellow',
                    borderBottomColor: 'yellow',
                    background: 'yellow',
                },
                '::before': {  // removes underline
                    color: 'yellow',
                    borderBottomColor: 'yellow',
                    background: 'yellow',
                },
                ':before': {  // removes underline
                    color: 'yellow',
                    borderBottomColor: 'yellow',
                    background: 'yellow',
                },
            },
        },
        useStyles: makeStyles(theme => ({
            root: {},
        })),
    },
}

const DatePicker = React.forwardRef((props, ref) => {
    const {classes, ...rest} = usePreset(presets, props)

    return (
        <MuiPickersUtilsProvider utils={DateFnsUtils}>
            <MuiDatePicker ref={ref} className={classes?.root} {...rest}/>
        </MuiPickersUtilsProvider>
    )
})

DatePicker.propTypes = {
    preset: PropTypes.oneOf(Object.keys(presets)),
    ...MuiDatePicker.propTypes,
}

export default DatePicker

Вот компонент. Обратите внимание, что компонент получает правильную предустановку, поскольку я вижу изменение цвета текста.

1 ответ

Согласно документации, The only way to override existing stylesheets are with the use of global material-ui theme overrides.. Вы также можете попробовать использовать встроенные стили, чтобы изменить цвет компонента. источник: https://material-ui-pickers.dev/guides/css-overrides

Другие вопросы по тегам