Динамическое изменение значений JSS при использовании withStyles () в material-ui

У меня есть компонент Drawer, который обернут с помощью withStyles и переопределяет некоторые значения в anchorLeft className. <Drawer anchor="left" classes={{paper: this.props.classes.paper, anchorLeft: this.props.classes.anchorLeft}} ...>

У меня есть другие части приложения, которые могут влиять на значение top, которое необходимо передать в anchorLeft. Я использую redux, поэтому верхнее значение передается через хранилище redux и отправляется моему компоненту Drawer через реквизиты, поэтому мне нужен способ в компоненте, чтобы повлиять на верхнее значение anchorLeft.

Какой предпочтительный способ сделать динамическое стили внутри компонента и изменить значения в таблице стилей JSS? Есть ли способ использовать JSS sheet.update () и таким образом получить доступ к листу? http://cssinjs.org/json-api?v=v9.0.0-pre.3#function-values


person John C    schedule 30.08.2017    source источник


Ответы (2)


Я предполагаю, что вы используете response-jss или styled-jss, в обоих случаях вы можете использовать значения функций, и вы уже получаете реквизиты там.

person Oleg Isonen    schedule 30.08.2017
comment
Я просто использую по умолчанию withStyles (), который поставляется с material-ui. Я пробовал значение функции и не вижу, чтобы функция когда-либо вызывалась. - person John C; 30.08.2017

Похоже, что на данный момент это невозможно сделать с material-ui withStyles. Мне пришлось добавить response-jss и использовать injectStyles в компонентах, в которых мне были нужны динамические функции, а затем добавить дополнительный ThemeProvider, который использовал ту же тему, что и MuiThemeProvider, поэтому обе темы material-ui и response-jss имели одинаковую настройку.

Проблема, которая в настоящее время отслеживается для material-ui, связанная с этой функцией: https://github.com/callemall/material-ui/issues/7633

person John C    schedule 05.09.2017