проблема, когда makeStyles обращается к реквизитам при наведении (CSS-in-js) - PullRequest
0 голосов
/ 27 сентября 2019

Мне нужно изменить цвет при наведении, который я получаю.Наклонные реквизиты для доступа внутри блока '&: hover' enter image description here
Реквизиты доступны, если мне нужно раскрасить (не при наведении)

const useStyles = makeStyles((theme: Theme) =>
    createStyles({
        iconHover: {
            '&:hover': {
                color: props => props.color,
            }
        }
    })
);

const classes = useStyles({color});


below code works without any issue:
 createStyles({
        iconHover: {
            color: (props: any) => props.color,
        }
    })

1 Ответ

0 голосов
/ 27 сентября 2019

Вы должны объявить то, что вы передаете в функцию makeStyles следующим образом:

makeStyles<Theme, {color: string}>((theme: Theme) => ({
    iconHover: {
        '&:hover': {
            color: props => props.color,
        }
    }
});

Вы можете опустить createStyles, потому что makeStyles уже создает объект классов.После того, как вы объявляете то, что вы передаете makeStyles, будут определены реквизиты, и вы можете использовать их следующим образом:

const classes = useStyles({color});

createStyles работает, потому что он получает все пропущенные реквизиты, которые передаются в компоненти вы используете любой.Вы должны использовать правильные реквизиты, переданные компоненту, вместо любых.

Надеюсь, это поможет.Удачного кодирования.

...