Seb*_*ten 24 datepicker reactjs css-modules react-css-modules
我正在使用webpack,react- datepicker并设法使用提供的 css 模块导入其 css。
import 'react-datepicker/dist/react-datepicker-cssmodules.css
该组件看起来很好很花哨,但现在我想让它像上面的时间元素一样全宽。
查看 CSS,它需要的是react-datepicker-wrapper由库动态添加的元素具有display: block. 我react-datepicker-wrapper在自己的 css 中所做的任何修改都不起作用。
我该怎么办?
日期选择器.component.jsx
import React from 'react';
import DatePicker from 'react-datepicker';
import 'react-datepicker/dist/react-datepicker-cssmodules.css';
import './date-picker.component.bootstrap.css';
// eslint-disable-next-line no-confusing-arrow
const buildClassNames = (touched, isInvalid) =>
touched && isInvalid ? 'form-control is-invalid' : 'form-control';
export const DatePickerBootstrap = (props) => {
const { setFieldValue, setFieldTouched, errors, touched } = props;
const { name, value, label, ...rest } = props;
return (
<div className="form-group">
<label className='datePickerLabel' htmlFor={name}>{label}</label>
<DatePicker
selected={value}
onChange={(e) => {
setFieldValue(name, e);
setFieldTouched(name);
}}
className={buildClassNames(touched, !!errors)}
customInput={
<input
type="text"
id={name}
placeholder={label} />
}
{...rest}
/>
<div className="invalid-feedback">
{errors}
</div>
</div>
);
};
export default DatePickerBootstrap;
Run Code Online (Sandbox Code Playgroud)
ish*_*ood 12
我认为您只是缺少一些 CSS。在您的自定义样式表(日期选择器的样式表之后的任何位置)中试试这个:
.react-datepicker-wrapper,
.react-datepicker__input-container,
.react-datepicker__input-container input {
display: block;
width: 100%;
}
Run Code Online (Sandbox Code Playgroud)
来自https://github.com/Hacker0x01/react-datepicker/issues/2099#issuecomment-704194903
尝试使用 wrapperClassName 属性:
<DatePicker wrapperClassName="datePicker" dateFormat="dd/MM/yyyy" />
Run Code Online (Sandbox Code Playgroud)
CSS:
<DatePicker wrapperClassName="datePicker" dateFormat="dd/MM/yyyy" />
Run Code Online (Sandbox Code Playgroud)
这样你就不会修改整个应用程序的样式
import React from 'react';
import styled, { css, createGlobalStyle } from 'styled-components';
import DatePicker from 'react-datepicker';
const DatePickerWrapperStyles = createGlobalStyle`
.date_picker.full-width {
width: 100%;
}
`;
<>
<DatePicker wrapperClassName='date_picker full-width' />
<DatePickerWrapperStyles />
</>
Run Code Online (Sandbox Code Playgroud)
<>
<DatePickerWrapper
popperContainer={Popper}
calendarContainer={Calendar}
/>
</>
const DatePickerWrapper = styled(({ className, ...props }) => (
<DatePicker {...props} wrapperClassName={className} />
))`
width: 100%;
`;
const Calendar = styled.div`
border-radius: 10px;
box-shadow: 0 6px 12px rgba(27, 37, 86, 0.16);
overflow: hidden;
`;
const Popper = styled.div`
position: absolute;
top: 0;
left: 0;
z-index: 2;
`;
Run Code Online (Sandbox Code Playgroud)
你可以通过在行尾放置 !important 来让你的 CSS 工作:
display: block !important;
Run Code Online (Sandbox Code Playgroud)
并且,您应该在最后导入 css 文件:
import 'library0.css';
import 'library1.css';
import 'library2.css';
import 'yourCss.css'; // Your css
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36320 次 |
| 最近记录: |