选择时 React Date Range 不填充输入日期字段

React Date Range not filling input date fields when selected

我正在尝试使用此反应 class (react-date-range) 来导入日期范围选择器组件,但是当我 select 日期未更新到两个输入字段。谁能帮我识别并解决它?

下面的代码和沙盒到:

import React from "react";
import "./styles.css";
import { render } from "react-dom";
import { DateRangePicker } from 'react-date-range';
import 'react-date-range/dist/styles.css'; // main style file
import 'react-date-range/dist/theme/default.css'; // theme css file
export default class App extends React.Component {
  handleSelect(ranges){
    console.log(ranges);

  }
  render(){
    const selectionRange = {
      startDate: new Date(),
      endDate: new Date(),
      key: 'selection',
    }
    return (
      <DateRangePicker
        ranges={[selectionRange]}
        onChange={this.handleSelect}
      />
    )
  }
}
render(<App />, document.querySelector("#root"));

沙盒link: https://codesandbox.io/s/pedantic-kapitsa-trglh?file=/src/App.js

缺少更新和绑定到 DateRangePicker 的状态管理:

import React from "react";
import "./styles.css";
import { render } from "react-dom";
import { DateRangePicker } from "react-date-range";
import "react-date-range/dist/styles.css"; // main style file
import "react-date-range/dist/theme/default.css"; // theme css file

export default class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      range: {
      startDate: new Date(),
      endDate: new Date(),
      key: "selection"
    }};
    this.handleSelect = this.handleSelect.bind(this);
  }
  
  handleSelect(ranges) {
    this.setState({
      range: ranges.selection
    });
  }

  render() {
    return (
      <DateRangePicker ranges={[this.state.range]} onChange={this.handleSelect} />
    );
  }
}
render(<App />, document.querySelector("#root"));

您只是错过了状态变化。你可以像下面那样做

import React from "react";
import "./styles.css";
import { render } from "react-dom";
import { DateRangePicker } from "react-date-range";
import "react-date-range/dist/styles.css"; // main style file
import "react-date-range/dist/theme/default.css"; // theme css file
export default class App extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      selectionRange : {
        startDate: new Date(),
        endDate: new Date(),
        key: "selection"
      }
    } 
  }

  handleSelect=(ranges)=> {
    this.setState({
      selectionRange : {
        startDate: ranges.selection.startDate,
        endDate: ranges.selection.endDate,
        key: "selection"
      }
    })
  
    console.log(ranges.selection.endDate);
  }
  render() {
    
    return (
      <DateRangePicker ranges={[this.state.selectionRange]} onChange={this.handleSelect} />
    );
  }
}
render(<App />, document.querySelector("#root"));