React Datepicker(无法获取输入值)

Ser*_*eyB 8 datepicker reactjs react-redux

我是新的反应.我需要使用react-datepicker

我希望在更改日期时获得输入值.如果我点击2017年10月20日,我想把2017年10月20日放在我的变量中.但是我应该使用组件而不是输入的主要问题.

在我从国家获得价值之前.喜欢this.state.value.但是现在它是状态中的对象(时刻).而且这个对象没有值字段.

有我的代码:

export default class DatePicker extends Component {
constructor (props) {
    super(props);
    // this.props.date should looks like "29 November 2017 00:00"
    // second argument for moment() it is format of date, because RFC 2822 date time format
    this.state = {
        date: moment(this.props.value, 'LLL')
    };
}
handleChange = (date) => {
  // const valueOfInput = this.state.date  <--- I want string with date here
  console.log('this.state.date',this.state.date);
  this.setState({date: date});
};
render() {
    return <Form.Field>
              <Label>
                <Picker
                  selected={this.state.date}
                  onChange={this.handleChange}
                  dateFormat="LLL"
                  locale={this.props.language}
                />
              </Label>
          </Form.Field>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

小智 9

只要用这个:

handleChange = date => {
  const valueOfInput = date.format();
  ///...
};
Run Code Online (Sandbox Code Playgroud)

因为这会datepicker返回一个moment.js对象!

有关更多信息,请查看此处的moment.js 文档.

  • 我得到 date.format() 不是一个函数。我必须安装时刻吗? (3认同)

小智 5

尝试这个

<DatePicker 
   onChange={(value, e) => this.handleChange(value, e)}
   selected={this.state.inputValue} otherProps={here} 
/>

// you can access the value field in handleChange by e.target.value

handleChange(value, e) {
    console.log(value); // this will be a moment date object
    console.log(e.target.value); // this will be a string value in datepicker input field
}
Run Code Online (Sandbox Code Playgroud)