Reactjs 修改的反应日期选择器未显示值

Reactjs 修改的反应日期选择器未显示值,reactjs,react-datepicker,Reactjs,React Datepicker,我用的是react v.15。使用react datepicker库会在使用默认代码时出现问题。我已经成功地修改了代码,但每当我点击所选日期时,它根本不会显示任何日期。我的代码是这样的: import * as React from 'react'; let DatePicker = require('react-datepicker'); import 'react-datepicker/dist/react-datepicker.css'; export default class Dte

我用的是react v.15。使用react datepicker库会在使用默认代码时出现问题。我已经成功地修改了代码,但每当我点击所选日期时,它根本不会显示任何日期。我的代码是这样的:

import * as React from 'react';
let DatePicker = require('react-datepicker');
import 'react-datepicker/dist/react-datepicker.css';

export default class DtePicker extends React.Component<any, any> {
    constructor() {
        super()
        this.state = {
            startDate: new Date(),
        }
        this.handleChange = this.handleChange.bind(this)
    }

    handleChange(date) {
        this.setState({
            startDate: date
        });
    };

    render() {
        return (
            <div>
                <DatePicker
                    dateFormat='yyyy/MM/dd'
                    selected={this.state.startDate}
                    onChange={this.handleChange}
                />
            </div>
        );
    }
}

Am I missing a code perhaps in my handleChange function? Also, it's a typescript file, using ASP.Net framework.
import*as React from'React';
让DatePicker=require('react-DatePicker');
导入'react datepicker/dist/react datepicker.css';
导出默认类DtePicker扩展React.Component{
构造函数(){
超级()
此.state={
开始日期:新日期(),
}
this.handleChange=this.handleChange.bind(this)
}
手册更改(日期){
这是我的国家({
开始日期:日期
});
};
render(){
返回(
);
}
}
我的handleChange函数中是否缺少代码?此外,它是一个类型脚本文件,使用ASP.Net framework。

试试这个。它工作正常

import React from "react";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";

    class DtePicker extends React.Component {
      constructor() {
        super();
        this.state = {
          startDate: new Date()
        };
        this.handleChange = this.handleChange.bind(this);
      }

      handleChange(date) {
        this.setState({
          startDate: date
        });
      }

      render() {
        return (
          <div>
            <DatePicker
              dateFormat="yyyy/MM/dd"
              selected={this.state.startDate}
              onChange={this.handleChange}
            />
          </div>
        );
      }
    }
从“React”导入React;
从“反应日期选择器”导入日期选择器;
导入“react datepicker/dist/react datepicker.css”;
类DtePicker扩展了React.Component{
构造函数(){
超级();
此.state={
起始日期:新日期()
};
this.handleChange=this.handleChange.bind(this);
}
手册更改(日期){
这是我的国家({
开始日期:日期
});
}
render(){
返回(
);
}
}

在指定了版本后,我看到“date.clone不是函数”错误,因此我怀疑
时刻有问题

react datepicker
v0.40.0使用引擎盖下的力矩

所选日期必须是
时刻
对象,因此我们将每个日期对象保存为
时刻
日期对象

class DtePicker extends Component {
  constructor(props) {
    super(props); // Don't forget to pass props to super constructor!
    this.state = {
      startDate: moment(new Date())
    };
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange(date) {
    this.setState({
      startDate: moment(date)
    });
  }

  render() {
    return (
      <div>
        <DatePicker
          dateFormat="YYYY/MM/dd" // Also corrected date format
          selected={this.state.startDate}
          onChange={this.handleChange}
        />
      </div>
    );
  }
}
类DtePicker扩展组件{
建造师(道具){
超级(道具);//别忘了将道具传递给超级构造函数!
此.state={
开始日期:时刻(新日期())
};
this.handleChange=this.handleChange.bind(this);
}
手册更改(日期){
这是我的国家({
开始日期:时刻(日期)
});
}
render(){
返回(
);
}
}

  • 力矩v2.24.0
  • 反应v15.4.1
  • 反应日期选择器v0.40.0
  • react dom v15.4.1

正如我所说,我使用的是一种更老的方法。因此,我必须通过不使用默认代码来修改代码。所以那是行不通的。无论如何,谢谢。听起来是时候更新到React的新版本了。您使用的React的具体版本是什么。另外,您使用的是什么特定版本的
react datepicker
?这是“react datepicker我无法让您的代码在codesandbox(尝试了react v15.0.0-15.5.0)和(react datepicker v2.9.3及更高版本)中运行的代码”。@Drewrese react是15.4.1,兼容的react datepicker版本是0.40.0现在终于取得了进展。下拉菜单现在工作正常,但每当我导入registerlocale.Nevermind时,该语言似乎会阻碍页面加载。终于让它完全工作了。谢谢