我已经基于react-dates创建了一个简单的datepicker组件,并按照https://github.com/airbnb/react-dates的文档实现了它
日期选择器似乎正在工作,但单击日期选择器字段时日历样式完全损坏
日期选择器代码:
import React, { Component } from 'react';
import moment from 'moment';
import 'react-dates/initialize';
import { SingleDatePicker } from 'react-dates';
import 'react-dates/lib/css/_datepicker.css';
export default class DatePicker extends Component {
constructor(props) {
super(props);
this.state = {
selectedStartDate: moment(),
calendarSelectedStartDate: false
}
}
onDateChange = (selectedStartDate) => {
this.setState(() => ({ selectedStartDate }));
};
onFocusChange = ({ focused }) => {
this.setState(() => ({ calendarSelectedStartDate: focused }));
};
render() {
return (
<SingleDatePicker
date={this.state.selectedStartDate}
onDateChange={this.onDateChange}
focused={this.state.calendarSelectedStartDate}
onFocusChange={this.onFocusChange}
numberOfMonths={1}
isOutsideRange={() => false}
/>
)
}
}
实现只是调用:
<DatePicker />
在可能影响它的任何父HTML标签之外。
样式如下所示:
1条答案
按热度按时间7cwmlq891#
好吧,我找到了这个问题的答案,所以:
您是否试图在另一个不总是可见的元素中呈现日历,对吗?
如果您要这样做,那么在父组件中必须有一个类似“isOpen”或类似的状态。然后,当您调用Picker组件时,必须像这样:
我花了大约两个小时来寻找这个解决方案。我希望这对你有意义。