【发布时间】:2019-09-11 16:02:15
【问题描述】:
我正在使用 webpack、react-datepicker 并已设法使用提供的 css 模块导入其 css。
import 'react-datepicker/dist/react-datepicker-cssmodules.css
组件看起来很漂亮,但现在我想让它像上面的时间元素一样全宽。
查看 CSS,它需要的是由库动态添加的 react-datepicker-wrapper 元素以具有 display: block。我在自己的 css 中对 react-datepicker-wrapper 所做的任何修改都不起作用。
我该怎么办?
date-picker.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;
【问题讨论】:
-
这不是一个真正的 React 或日期选择器问题。它只是关于 CSS 的特殊性。您要覆盖什么规则?
-
我认为它使用 CSS 模块,它只是忽略了我给它的任何 CSS。这真的是问题所在。我不确定您如何覆盖第 3 方 CSS 模块样式
-
我问了规则是什么。那会澄清一些事情。请显示应用于元素的实际 CSS。
-
@SebastianPatten 你让
invalid-feedbackdiv 工作了吗?我正在做类似的事情,并且对内部表单控件输入的 className 调整不会像在两个元素是对等的标准引导示例中那样覆盖display: none样式。
标签: reactjs datepicker css-modules react-css-modules