reactjs React日期中断-无法识别css?

ohtdti5x  于 2023-03-01  发布在  React
关注(0)|答案(1)|浏览(92)

我已经基于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标签之外。
样式如下所示:

7cwmlq89

7cwmlq891#

好吧,我找到了这个问题的答案,所以:
您是否试图在另一个不总是可见的元素中呈现日历,对吗?
如果您要这样做,那么在父组件中必须有一个类似“isOpen”或类似的状态。然后,当您调用Picker组件时,必须像这样:

{isOpen && <DatePicker />}

我花了大约两个小时来寻找这个解决方案。我希望这对你有意义。

相关问题