react-datepicker中的默认值

时间:2017-04-18 06:51:15

标签: reactjs datepicker default-value redux-form

我在react-redux应用程序中使用react-datepicker模块,我使其与redux形式兼容,如下所示:

const MyDatePicker = props => (
  <div>
    <DatePicker
      {...props.input}
      dateFormat="DD-MM-YYYY"
      selected={props.input.value
        ? moment(props.input.value, 'DD-MM-YYYY')
        : null}
      placeholderText={props.placeholder}
      disabled={props.disabled}
    />
    {
      props.meta.touched && props.meta.error &&
      <span className="error">
        { props.intl.formatMessage({ id: props.meta.error }) }
      </span>
    }
  </div>
);

问题是我不知道如何在我的模块中添加默认值。此默认值必须是今天。关于如何处理这个的任何想法?

3 个答案:

答案 0 :(得分:2)

您可以在mapStateToProps阶段指定初始表单值:

const mapStateToProps = state => {
  return {
    initialValues: {
      date: moment()
    } // Use the `initialValues` property to set your initial data
  };
}

这也在这里解释:http://redux-form.com/6.6.3/examples/initializeFromState/

答案 1 :(得分:2)

变化:

 selected={props.input.value
        ? moment(props.input.value, 'DD-MM-YYYY')
        : null}

t0

 selected={props.input.value ? moment(props.input.value, 'DD-MM-YYYY') : moment()}


const MyDatePicker = props => (
  <div>
    <DatePicker
      {...props.input}
      dateFormat="DD-MM-YYYY"
  selected={props.input.value ? moment(props.input.value, 'DD-MM-YYYY') : moment()}
      placeholderText={props.placeholder}
      disabled={props.disabled}
    />
    {
      props.meta.touched && props.meta.error &&
      <span className="error">
        { props.intl.formatMessage({ id: props.meta.error }) }
      </span>
    }
  </div>
);

答案 2 :(得分:1)

您应该使用moment(dt).format()格式化日期

const MyDatePicker = props => {
  var date = new Date();
  var todayDate = moment(date).format('DD-MM-YYYY');
  return (
  <div>
    <DatePicker
      {...props.input}
      dateFormat="DD-MM-YYYY"
      selected={props.input.value
        ? moment(props.input.value).format('DD-MM-YYYY')
        : todayDate}
      placeholderText={props.placeholder}
      disabled={props.disabled}
    />
    {
      props.meta.touched && props.meta.error &&
      <span className="error">
        { props.intl.formatMessage({ id: props.meta.error }) }
      </span>
    }
  </div>
  );
}