reactjs - 在没有主题的情况下 react KeyboardDatePicker 样式

标签 reactjs datepicker material-ui styling

我有一个具有自定义样式的 KeyboardDatePicker:

import { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';

const datePickerTheme= outerTheme => ({
    overrides: {
    MuiFormControl: {
        marginDense: {
            marginTop:"0px"
        }
    },
    MuiInputAdornment: {
        positionEnd: {
            marginLeft: "0px"               
        }
    }
    }
});   

<ThemeProvider theme={datePickerTheme(originalTheme)}>
    <MuiPickersUtilsProvider utils={DateFnsUtils} >     
        <KeyboardDatePicker
        variant="inline"
        format="dd/MM/yyyy"             
        margin='dense'/>
    </MuiPickersUtilsProvider>
</ThemeProvider>

它工作得很好,但我试图重现相同的自定义,而不必将选择器嵌套在主题内。我尝试过使用 InputProps 属性:

<KeyboardDatePicker
variant="inline"
format="dd/MM/yyyy"
margin='dense'
InputProps={{classes: { 
    MuiFormControl: {
        marginDense: {      
            marginTop: '0px'                            
        }                       
    },
    MuiInputAdornment: {
        positionEnd: {
            marginLeft: "0px"               
        }
    }
}
}}/>        

但这不起作用。

是否可以通过classesinputProps或任何其他方法来实现自定义,而无需诉诸主题或全局规则?

最佳答案

是的,有办法 只需向其中添加 className 属性并使用类中的 css 样式加载它,它就可以正常工作。

日期选择器

 <MuiPickersUtilsProvider libInstance={moment} utils={MomentUtils} locale={"sw"} >
          <KeyboardDatePicker
            minDate={minDate}
            maxDate={maxDate}
            className={classes.input}
            variant="dialog"
            format="L"
            clearable
            maxDateMessage=""
            views={["year", "month", "date"]}
            placeholder="dd/MM/yyyy"
            invalidDateMessage=""
            mask="__/__/____"
            value={ val }
            onChange={(date) => {}}
            KeyboardButtonProps={{
              style: {marginLeft: -24}
            }}
            InputProps={{
              disableUnderline: true
            }}
          />
 </MuiPickersUtilsProvider>

使用样式

const useStyles = makeStyles( theme => ({
  input: {
    height: 36,
    width: 240,
    textAlign: 'right',
    paddingLeft: theme.spacing(1),
    paddingRight: theme.spacing(1),
    backgroundColor: theme.palette.common.white,
  },
}));  

关于reactjs - 在没有主题的情况下 react KeyboardDatePicker 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66589621/

相关文章:

jquery - 无法获得我的 BOOTSTRAP DATEPICKER 的值(value)

javascript - 如何使用 Require JS 配置具有第三方 js 依赖项的日期选择器?

reactjs - Material UI V5 主题定制

javascript - 使用 Click 或 Escape 键调用 setState

javascript - 无法访问同一类内的变量

javascript - Bootstrap (Twitter) Datepicker 差异计算返回 "NaN"

reactjs - 如何在 Material UI 网格中添加水平滚动

javascript - ReactJS 中未处理的拒绝

javascript - React,已安装/未安装组件的 setState 警告

javascript - 使用 ref (第三方库)更改元素