#reactjs #material-ui #material-table
#reactjs #материал-пользовательский интерфейс #материал-таблица
Вопрос:
Я пытаюсь увеличить ширину выпадающего списка. Глядя на его класс в inspect, он указан как:
class="MuiPaper-root MuiMenu-paper MuiPopover-paper MuiPaper-elevation8 MuiPaper-rounded"
В моем компоненте я пытаюсь ссылаться на него с помощью useStyles:
const useStyles = makeStyles(theme => ({
root: {
'amp; MuiPaper-root MuiMenu-paper MuiPopover-paper MuiPaper-elevation8 MuiPaper-rounded': {
width: '500px',
},
},
}))
А затем прикрепить его к моему компоненту —
<MaterialTable
title=""
columns={props.state.columns}
data={props.state.data}
components={{
FilterRow: props => (
<MTableFilterRow className={classes.root} {...props} />
),
}}...
</MaterialTable>
Я что-то упускаю, у кого-нибудь есть идея, где происходит мое отключение?
Комментарии:
1. пожалуйста, добавьте свою кодовую базу
2. добавлено больше моего кода
Ответ №1:
В итоге я решил вопрос. Я использовал createMuiTheme и вложил классы, чтобы увеличить ширину. Затем я передал тему с помощью ThemeProvider и завернул в нее компонент.
const theme = createMuiTheme({
overrides: {
MuiPaper: {
root: {
'amp;.MuiMenu-paper': {
'amp;.MuiPopover-paper': {
'amp;.MuiPaper-elevation8': {
'amp;.MuiPaper-rounded': {
width: '375px !important',
},
},
},
},
},
},
},
})
....
<ThemeProvider theme={theme}> <Component/> </ThemeProvider>
Комментарии:
1. У вас есть лучшее решение? @adirabargil
2. зачем менять тему … сначала посмотрите, что этот синтаксис неправильный:
'amp; MuiPaper-root MuiMenu-paper...'
вы должны записать его как селектор класса css :'amp;.MuiPaper-root.MuiMenu-paper...'